X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2FVerify.java;h=0c8485420208067b74aaeae436e6e972da5d1b96;hb=7431a1f62c8589e77dd8fcf198eeab4a4a39a49f;hp=a1d613a744346984602f33444889fb086eec662b;hpb=ec24cf6925bb3729a644580ad4a9375d05883c62;p=gigi.git diff --git a/src/org/cacert/gigi/pages/Verify.java b/src/org/cacert/gigi/pages/Verify.java index a1d613a7..0c848542 100644 --- a/src/org/cacert/gigi/pages/Verify.java +++ b/src/org/cacert/gigi/pages/Verify.java @@ -11,11 +11,17 @@ import javax.servlet.http.HttpServletResponse; import org.cacert.gigi.GigiApiException; import org.cacert.gigi.dbObjects.Domain; 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.SprintfCommand; public class Verify extends Page { + private static final SprintfCommand emailAddressVerified = new SprintfCommand("Email address ${subject} verified"); + + private static final SprintfCommand domainVerified = new SprintfCommand("Domain ${subject} verified"); + private class VerificationForm extends Form { private String hash; @@ -24,20 +30,34 @@ public class Verify extends Page { private String id; + private Verifyable target; + + String subject; + public VerificationForm(HttpServletRequest hsr) { super(hsr, PATH); hash = hsr.getParameter("hash"); type = hsr.getParameter("type"); id = hsr.getParameter("id"); + if ("email".equals(type)) { + EmailAddress addr = EmailAddress.getById(Integer.parseInt(id)); + subject = addr.getAddress(); + target = addr; + } else if ("domain".equals(type)) { + Domain domain = Domain.getById(Integer.parseInt(id)); + subject = domain.getSuffix(); + target = domain; + } } @Override public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException { + HashMap data = new HashMap<>(); + data.put("subject", subject); if ("email".equals(type)) { try { - EmailAddress ea = EmailAddress.getById(Integer.parseInt(id)); - ea.verify(hash); - out.println("Email verification completed."); + target.verify(hash); + emailAddressVerified.output(out, getLanguage(req), data); } catch (IllegalArgumentException e) { out.println(translate(req, "The email address is invalid.")); } catch (GigiApiException e) { @@ -45,11 +65,10 @@ public class Verify extends Page { } } else if ("domain".equals(type)) { try { - Domain ea = Domain.getById(Integer.parseInt(id)); - ea.verify(hash); - out.println("Domain verification completed."); + target.verify(hash); + domainVerified.output(out, getLanguage(req), data); } catch (IllegalArgumentException e) { - out.println(translate(req, "The domain address is invalid.")); + out.println(translate(req, "The domain is invalid.")); } catch (GigiApiException e) { e.format(out, getLanguage(req)); } @@ -62,9 +81,10 @@ public class Verify extends Page { vars.put("hash", hash); vars.put("id", id); vars.put("type", type); + + vars.put("subject", subject); getDefaultTemplate().output(out, l, vars); } - } public static final String PATH = "/verify"; @@ -90,7 +110,12 @@ public class Verify extends Page { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { - new VerificationForm(req).output(resp.getWriter(), getLanguage(req), new HashMap()); + try { + new VerificationForm(req).output(resp.getWriter(), getLanguage(req), new HashMap()); + } catch (IllegalArgumentException e) { + resp.getWriter().println(translate(req, "The object to verify is invalid.")); + + } } }