X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fwot%2FAssuranceForm.java;h=cf60f75bc0eb8cc7ed322aeed13cfd3d5f03e476;hp=a4ea3c23bf6102cf2629a7ed0a5c69f2613b931d;hb=80a10fc035deef98dc2e839ca11b68ab1a6ff80e;hpb=c793f81c916f0f24b2180649b3d88348434b9480 diff --git a/src/org/cacert/gigi/pages/wot/AssuranceForm.java b/src/org/cacert/gigi/pages/wot/AssuranceForm.java index a4ea3c23..cf60f75b 100644 --- a/src/org/cacert/gigi/pages/wot/AssuranceForm.java +++ b/src/org/cacert/gigi/pages/wot/AssuranceForm.java @@ -4,21 +4,25 @@ 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; import java.util.Map; import javax.servlet.http.HttpServletRequest; 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; @@ -29,7 +33,7 @@ public class AssuranceForm extends Form { private Name assureeName; - private Date dob; + private DayDate dob; private String location = ""; @@ -37,6 +41,10 @@ public class AssuranceForm extends Form { private String aword; + private User assurer; + + private AssuranceType type = AssuranceType.FACE_TO_FACE; + private static final Template templ; static { templ = new Template(AssuranceForm.class.getResource("AssuranceForm.templ")); @@ -44,6 +52,7 @@ public class AssuranceForm extends Form { public AssuranceForm(HttpServletRequest hsr, User assuree) { super(hsr); + assurer = Page.getUser(hsr); this.assuree = assuree; assureeName = this.assuree.getName(); dob = this.assuree.getDoB(); @@ -59,12 +68,36 @@ public class AssuranceForm extends Form { res.putAll(vars); res.put("nameExplicit", assuree.getName()); res.put("name", assuree.getName().toString()); - res.put("maxpoints", assuree.getMaxAssurePoints()); - res.put("dob", sdf.format(assuree.getDoB())); - res.put("dobFmt2", sdf2.format(assuree.getDoB())); + res.put("maxpoints", assurer.getMaxAssurePoints()); + 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); + final LinkedList ats = new LinkedList<>(); + for (AssuranceType at : AssuranceType.values()) { + try { + Notary.may(assurer, assuree, at); + ats.add(at); + } catch (GigiApiException e) { + } + } + res.put("ats", new IterableDataset() { + + Iterator t = ats.iterator(); + + @Override + public boolean next(Language l, Map vars) { + if ( !t.hasNext()) { + return false; + } + AssuranceType t1 = t.next(); + vars.put("type", t1.getDescription()); + vars.put("id", t1.toString()); + vars.put("sel", t1 == type ? " selected" : ""); + return true; + } + }); templ.output(out, l, res); } @@ -76,9 +109,8 @@ public class AssuranceForm extends Form { outputError(out, req, "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("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("passwordReset"))) { aword = req.getParameter("passwordResetValue"); @@ -88,6 +120,14 @@ public class AssuranceForm extends Form { } else { aword = null; } + String val = req.getParameter("assuranceType"); + if (val != null) { + try { + type = AssuranceType.valueOf(val); + } catch (IllegalArgumentException e) { + outputError(out, req, "Assurance Type wrong."); + } + } int pointsI = 0; String points = req.getParameter("points"); @@ -105,7 +145,7 @@ public class AssuranceForm extends Form { return false; } try { - Notary.assure(Page.getUser(req), assuree, assureeName, dob, pointsI, location, req.getParameter("date")); + 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); @@ -113,7 +153,8 @@ public class AssuranceForm extends Form { 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(l.getTranslation("A password reset was triggered. If you did a password reset by assurance, please enter your secret password using this form:")); + body.append("\n\nhttps://"); body.append(ServerConstants.getWwwHostNamePortSecure() + PasswordResetPage.PATH); body.append("?id="); body.append(id); @@ -123,8 +164,8 @@ public class AssuranceForm extends Form { 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); + 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(); }