]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/MailCertificateAdd.java
Factor out email sending from "Signup".
[gigi.git] / src / org / cacert / gigi / pages / account / MailCertificateAdd.java
index 7d8a8777c2bae818dd39df90e9b3200d06a3efa5..c25db15f89cf18f426ed9703f682a2740d9b4d47 100644 (file)
@@ -1,25 +1,47 @@
 package org.cacert.gigi.pages.account;
 
 import java.io.IOException;
+import java.util.Collections;
 import java.util.HashMap;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.cacert.gigi.Certificate;
+import org.cacert.gigi.output.Form;
+import org.cacert.gigi.output.template.Template;
 import org.cacert.gigi.pages.Page;
 
 public class MailCertificateAdd extends Page {
        public static final String PATH = "/account/certs/email/new";
+       Template t = new Template(MailCertificateAdd.class.getResource("RequestCertificate.templ"));
 
        public MailCertificateAdd() {
                super("Create Email certificate");
        }
 
        @Override
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)
-                       throws IOException {
+       public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
                HashMap<String, Object> vars = new HashMap<String, Object>();
-               getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars);
+               vars.put("CCA", "<a href='/policy/CAcertCommunityAgreement.html'>CCA</a>");
+
+               t.output(resp.getWriter(), getLanguage(req), vars);
        }
 
+       @Override
+       public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+               IssueCertificateForm f;
+               if (req.getParameter(Form.CSRF_FIELD) != null) {
+                       f = Form.getForm(req, IssueCertificateForm.class);
+                       if (f.submit(resp.getWriter(), req)) {
+                               Certificate c = f.getResult();
+                               String ser = c.getSerial();
+                               resp.sendRedirect(MailCertificates.PATH + "/" + ser);
+                       }
+               } else {
+                       f = new IssueCertificateForm(req);
+                       f.submit(resp.getWriter(), req);
+               }
+               f.output(resp.getWriter(), getLanguage(req), Collections.<String, Object> emptyMap());
+
+       }
 }