X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2FVerify.java;h=2b4cd82605cfe2ffc62fa76b2cde50e489717ad0;hp=0f88fe4048cd467b208fe477b8d92bce4bae2cfe;hb=b37c20b3c3f2bc96ee9a93ac67949e523969be66;hpb=449f75a2b5d97ebf34bec2df715b71aa7e31afb0 diff --git a/src/org/cacert/gigi/pages/Verify.java b/src/org/cacert/gigi/pages/Verify.java index 0f88fe40..2b4cd826 100644 --- a/src/org/cacert/gigi/pages/Verify.java +++ b/src/org/cacert/gigi/pages/Verify.java @@ -15,6 +15,7 @@ import org.cacert.gigi.dbObjects.EmailAddress; import org.cacert.gigi.dbObjects.Verifyable; import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.template.Form; +import org.cacert.gigi.output.template.Scope; import org.cacert.gigi.output.template.SprintfCommand; public class Verify extends Page { @@ -48,33 +49,32 @@ public class Verify extends Page { Domain domain = Domain.getById(Integer.parseInt(id)); subject = domain.getSuffix(); target = domain; + } else { + throw new IllegalArgumentException(); } } @Override - public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException { + public SubmissionResult submit(HttpServletRequest req) throws GigiApiException { HashMap data = new HashMap<>(); data.put("subject", subject); if ("email".equals(type)) { try { target.verify(hash); - emailAddressVerified.output(out, getLanguage(req), data); } catch (IllegalArgumentException e) { - out.println(translate(req, "The email address is invalid.")); - } catch (GigiApiException e) { - e.format(out, getLanguage(req)); + throw new PermamentFormException(new GigiApiException("Given token could not be found to complete the verification process (Email Ping).")); } + return new SuccessMessageResult(new Scope(emailAddressVerified, data)); } else if ("domain".equals(type)) { try { target.verify(hash); - domainVerified.output(out, getLanguage(req), data); } catch (IllegalArgumentException e) { - out.println(translate(req, "The domain is invalid.")); - } catch (GigiApiException e) { - e.format(out, getLanguage(req)); + throw new PermamentFormException(new GigiApiException("Given token could not be found to complete the verification process (Domain Ping).")); } + return new SuccessMessageResult(new Scope(domainVerified, data)); + } else { + throw new GigiApiException("Invalid object type."); } - return true; } @Override @@ -99,13 +99,15 @@ public class Verify extends Page { return false; } + @Override + public boolean beforePost(HttpServletRequest req, HttpServletResponse resp) throws IOException { + return Form.getForm(req, VerificationForm.class).submitExceptionProtected(req, resp); + } + @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { - try { - if (Form.getForm(req, VerificationForm.class).submit(resp.getWriter(), req)) { - } - } catch (GigiApiException e) { - e.format(resp.getWriter(), getLanguage(req)); + if (Form.printFormErrors(req, resp.getWriter())) { + Form.getForm(req, VerificationForm.class).output(resp.getWriter(), getLanguage(req), new HashMap()); } } @@ -115,7 +117,6 @@ public class Verify extends Page { new VerificationForm(req).output(resp.getWriter(), getLanguage(req), new HashMap()); } catch (IllegalArgumentException e) { resp.getWriter().println(translate(req, "The object to verify is invalid.")); - } }