]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/wot/AssuranceForm.java
upd: remove ToS check from assurance form
[gigi.git] / src / org / cacert / gigi / pages / wot / AssuranceForm.java
index 6a9956d5539aee0a85bdb51e23b6ddaf1a3479aa..9188013de885f34653737b491fa89130bef9db87 100644 (file)
@@ -1,8 +1,6 @@
 package org.cacert.gigi.pages.wot;
 
-import java.io.IOException;
 import java.io.PrintWriter;
-import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -15,7 +13,6 @@ import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.dbObjects.Assurance.AssuranceType;
 import org.cacert.gigi.dbObjects.Name;
 import org.cacert.gigi.dbObjects.User;
-import org.cacert.gigi.email.Sendmail;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.template.Form;
 import org.cacert.gigi.output.template.IterableDataset;
@@ -24,8 +21,6 @@ import org.cacert.gigi.pages.Page;
 import org.cacert.gigi.pages.PasswordResetPage;
 import org.cacert.gigi.util.DayDate;
 import org.cacert.gigi.util.Notary;
-import org.cacert.gigi.util.RandomToken;
-import org.cacert.gigi.util.ServerConstants;
 
 public class AssuranceForm extends Form {
 
@@ -102,15 +97,16 @@ public class AssuranceForm extends Form {
     }
 
     @Override
-    public boolean submit(PrintWriter out, HttpServletRequest req) {
+    public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
         location = req.getParameter("location");
         date = req.getParameter("date");
+        GigiApiException gae = new GigiApiException();
         if (date == null || location == null) {
-            outputError(out, req, "You need to enter location and date!");
+            gae.mergeInto(new GigiApiException("You need to enter location and date!"));
         }
 
-        if ( !"1".equals(req.getParameter("certify")) || !"1".equals(req.getParameter("rules")) || !"1".equals(req.getParameter("tos_agree")) || !"1".equals(req.getParameter("assertion"))) {
-            outputError(out, req, "You failed to check all boxes to validate" + " your adherence to the rules and policies of SomeCA");
+        if ( !"1".equals(req.getParameter("certify")) || !"1".equals(req.getParameter("rules")) || !"1".equals(req.getParameter("assertion"))) {
+            gae.mergeInto(new GigiApiException("You failed to check all boxes to validate" + " your adherence to the rules and policies of SomeCA"));
         }
         if ("1".equals(req.getParameter("passwordReset"))) {
             aword = req.getParameter("passwordResetValue");
@@ -125,56 +121,33 @@ public class AssuranceForm extends Form {
             try {
                 type = AssuranceType.valueOf(val);
             } catch (IllegalArgumentException e) {
-                outputError(out, req, "Assurance Type wrong.");
+                gae.mergeInto(new GigiApiException("Assurance Type wrong."));
             }
         }
 
         int pointsI = 0;
         String points = req.getParameter("points");
         if (points == null || "".equals(points)) {
-            outputError(out, req, "For an assurance, you need to enter points.");
+            gae.mergeInto(new GigiApiException("For an assurance, you need to enter points."));
         } else {
             try {
                 pointsI = Integer.parseInt(points);
             } catch (NumberFormatException e) {
-                outputError(out, req, "The points entered were not a number.");
+                gae.mergeInto(new GigiApiException("The points entered were not a number."));
             }
         }
 
-        if (isFailed(out)) {
-            return false;
+        if ( !gae.isEmpty()) {
+            throw gae;
         }
-        try {
-            Notary.assure(assurer, assuree, assureeName, dob, pointsI, location, req.getParameter("date"), type);
-            if (aword != null && !aword.equals("")) {
-                String systemToken = RandomToken.generateToken(32);
-                int id = assuree.generatePasswordResetTicket(Page.getUser(req), systemToken, aword);
-                try {
-                    Language l = Language.getInstance(assuree.getPreferredLocale());
-                    StringBuffer body = new StringBuffer();
-                    body.append(l.getTranslation("Hi,") + "\n\n");
-                    body.append(l.getTranslation("A password reset was triggered. If you did a password reset by assurance, please enter your secret password using this form: \nhttps://"));
-                    body.append(ServerConstants.getWwwHostNamePortSecure() + PasswordResetPage.PATH);
-                    body.append("?id=");
-                    body.append(id);
-                    body.append("&token=");
-                    body.append(URLEncoder.encode(systemToken, "UTF-8"));
-                    body.append("\n");
-                    body.append("\n");
-                    body.append(l.getTranslation("Best regards"));
-                    body.append("\n");
-                    body.append(l.getTranslation("SomeCA.org Support!"));
-                    Sendmail.getInstance().sendmail(assuree.getEmail(), "[SomeCA.org] " + l.getTranslation("Password reset by assurance"), body.toString(), "support@cacert.org", null, null, null, null, false);
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-            return true;
-        } catch (GigiApiException e) {
-            e.format(out, Page.getLanguage(req));
+        Notary.assure(assurer, assuree, assureeName, dob, pointsI, location, req.getParameter("date"), type);
+        if (aword != null && !aword.equals("")) {
+            Language l = Language.getInstance(assuree.getPreferredLocale());
+            String method = l.getTranslation("A password reset was triggered. If you did a password reset by assurance, please enter your secret password using this form:");
+            String subject = l.getTranslation("Password reset by assurance");
+            PasswordResetPage.initPasswordResetProcess(out, assuree, req, aword, l, method, subject);
         }
-
-        return false;
+        return true;
     }
 
     public User getAssuree() {