X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fwot%2FAssuranceForm.java;h=9188013de885f34653737b491fa89130bef9db87;hp=919128fff37fd579280aedcd366fbbdfea91a88f;hb=4ffc462f4cfc470a8ad8bfc867d07a2b14adcf11;hpb=d1080ab12183cad2bab5d1f94bafe67960fbf4c8 diff --git a/src/org/cacert/gigi/pages/wot/AssuranceForm.java b/src/org/cacert/gigi/pages/wot/AssuranceForm.java index 919128ff..9188013d 100644 --- a/src/org/cacert/gigi/pages/wot/AssuranceForm.java +++ b/src/org/cacert/gigi/pages/wot/AssuranceForm.java @@ -1,10 +1,7 @@ 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.Date; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; @@ -16,16 +13,14 @@ 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; import org.cacert.gigi.output.template.Template; 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 { @@ -33,7 +28,7 @@ public class AssuranceForm extends Form { private Name assureeName; - private Date dob; + private DayDate dob; private String location = ""; @@ -69,8 +64,8 @@ public class AssuranceForm extends Form { res.put("nameExplicit", assuree.getName()); res.put("name", assuree.getName().toString()); res.put("maxpoints", assurer.getMaxAssurePoints()); - res.put("dob", sdf.format(assuree.getDoB())); - res.put("dobFmt2", sdf2.format(assuree.getDoB())); + res.put("dob", sdf.format(assuree.getDoB().toDate())); + res.put("dobFmt2", sdf2.format(assuree.getDoB().toDate())); res.put("location", location); res.put("date", date); res.put("aword", aword); @@ -102,16 +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("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"); - + 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"); @@ -126,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("CAcert.org Support!")); - Sendmail.getInstance().sendmail(assuree.getEmail(), "[CAcert.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() {