]> WPIA git - gigi.git/commitdiff
The assurance form outputs errors, but does nothing.
authorFelix Dörre <felix@dogcraft.de>
Fri, 27 Jun 2014 12:52:01 +0000 (14:52 +0200)
committerFelix Dörre <felix@dogcraft.de>
Fri, 27 Jun 2014 13:04:47 +0000 (15:04 +0200)
src/org/cacert/gigi/Gigi.java
src/org/cacert/gigi/pages/wot/AssuranceForm.java
src/org/cacert/gigi/pages/wot/AssurePage.java

index a96396db15b49760b970430a79758fbf5209742b..754fe3a0603ac6f07adbcf53de1255353d12b115 100644 (file)
@@ -48,7 +48,7 @@ public class Gigi extends HttpServlet {
                pages.put("/", new MainPage("CACert - Home"));
                pages.put("/secure", new TestSecure());
                pages.put(Verify.PATH, new Verify());
-               pages.put(AssurePage.PATH, new AssurePage());
+               pages.put(AssurePage.PATH + "/*", new AssurePage());
                pages.put(MailCertificates.PATH, new MailCertificates());
                pages.put(MyDetails.PATH, new MyDetails());
                pages.put(RegisterPage.PATH, new RegisterPage());
index 5240fc4cd86187cf39c6740524a8b01119627c04..d4d7f84bb32409eb77042bf96e55c4b6fad19cf0 100644 (file)
@@ -2,6 +2,9 @@ package org.cacert.gigi.pages.wot;
 
 import java.io.InputStreamReader;
 import java.io.PrintWriter;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -31,13 +34,58 @@ public class AssuranceForm extends Form {
                res.put("name", assuree.getName());
                templ.output(out, l, res);
        }
+       SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
 
        @Override
        public boolean submit(PrintWriter out, HttpServletRequest req) {
-               if (!"1".equals(req.getAttribute("certify"))) {
-                       // s
+               out.println("<div class='formError'>");
+               boolean failed = false;
 
+               if (!"1".equals(req.getParameter("certify"))
+                               || !"1".equals(req.getParameter("rules"))
+                               || !"1".equals(req.getParameter("CCAAgreed"))
+                               || !"1".equals(req.getParameter("assertion"))) {
+                       outputError(out, req, "You failed to check all boxes to validate"
+                                       + " your adherence to the rules and policies of CAcert");
+                       failed = true;
+
+               }
+               if (req.getParameter("date") == null
+                               || req.getParameter("date").equals("")) {
+                       outputError(out, req,
+                                       "You must enter the date when you met the assuree.");
+                       failed = true;
+               } else {
+                       try {
+                               Date d = sdf.parse(req.getParameter("date"));
+                               if (d.getTime() > System.currentTimeMillis()) {
+                                       outputError(out, req,
+                                                       "You must not enter a date in the future.");
+                                       failed = true;
+                               }
+                       } catch (ParseException e) {
+                               outputError(out, req,
+                                               "You must enter the date in this format: YYYY-MM-DD.");
+                               failed = true;
+                       }
+               }
+               // check location, min 3 characters
+               if (req.getParameter("location") == null
+                               || req.getParameter("location").equals("")) {
+                       outputError(out, req,
+                                       "You failed to enter a location of your meeting.");
+                       failed = true;
+               } else if (req.getParameter("location").length() <= 2) {
+                       outputError(out, req,
+                                       "You must enter a location with at least 3 characters eg town and country.");
+                       failed = true;
                }
+               // TODO checkPoints
+               out.println("</div>");
+               if (failed) {
+                       return false;
+               }
+
                return false;
        }
 }
index 1ff8410c1b06eae6a5dc32989d06866cb1b1fc02..a25f55732f316cd831a2f74138756f728e174950 100644 (file)
@@ -20,7 +20,7 @@ import org.cacert.gigi.pages.LoginPage;
 import org.cacert.gigi.pages.Page;
 
 public class AssurePage extends Page {
-       public static final String PATH = "/wot/assure/*";
+       public static final String PATH = "/wot/assure";
        public static final String SESSION = "/wot/assure/FORM";
        DateSelector ds = new DateSelector("day", "month", "year");
        Template t;
@@ -36,7 +36,7 @@ public class AssurePage extends Page {
                        throws IOException {
 
                PrintWriter out = resp.getWriter();
-               String pi = req.getPathInfo().substring(PATH.length() - 2);
+               String pi = req.getPathInfo().substring(PATH.length());
                if (pi.length() > 1) {
                        User myself = LoginPage.getUser(req);
                        int mid = Integer.parseInt(pi.substring(1));
@@ -63,12 +63,13 @@ public class AssurePage extends Page {
        public void doPost(HttpServletRequest req, HttpServletResponse resp)
                        throws IOException {
                PrintWriter out = resp.getWriter();
-               String pi = req.getPathInfo().substring(PATH.length() - 2);
+               String pi = req.getPathInfo().substring(PATH.length());
                if (pi.length() > 1) {
                        AssuranceForm form = (AssuranceForm) req.getSession().getAttribute(
                                        SESSION);
                        if (form == null) {
                                out.println("No form found. This is an Error. Fill in the form again.");
+                               return;
                        }
                        form.submit(out, req);
 
@@ -87,12 +88,19 @@ public class AssurePage extends Page {
                        int id = 0;
                        if (rs.next()) {
                                id = rs.getInt(1);
-                       }
-                       if (rs.next()) {
-                               out.println("Error, ambigous user. Please contact support@cacert.org");
+                               if (rs.next()) {
+                                       out.println("Error, ambigous user. Please contact support@cacert.org.");
+                               } else {
+                                       resp.sendRedirect(PATH + "/" + id);
+                               }
                        } else {
-                               resp.sendRedirect(PATH.substring(0, PATH.length() - 2) + "/"
-                                               + id);
+                               out.print("<div class='formError'>");
+                               out.println(translate(
+                                               req,
+                                               "I'm sorry, there was no email and date of birth matching"
+                                                               + " what you entered in the system. Please double check"
+                                                               + " your information."));
+                               out.print("</div>");
                        }
 
                        rs.close();