X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fwot%2FAssuranceForm.java;h=b46dfdd530637785a4fcb10b974f8b0459a34061;hp=e5521dab20b3ca251798811995d5c048502bad74;hb=abff88a2bf173198fe55c35ead97c9c7cdb5924c;hpb=c4d3f24d14399e48026850fd69b15bd108c020e4 diff --git a/src/org/cacert/gigi/pages/wot/AssuranceForm.java b/src/org/cacert/gigi/pages/wot/AssuranceForm.java index e5521dab..b46dfdd5 100644 --- a/src/org/cacert/gigi/pages/wot/AssuranceForm.java +++ b/src/org/cacert/gigi/pages/wot/AssuranceForm.java @@ -17,10 +17,13 @@ import org.cacert.gigi.dbObjects.Name; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.ArrayIterable; +import org.cacert.gigi.output.CountrySelector; import org.cacert.gigi.output.template.Form; import org.cacert.gigi.output.template.IterableDataset; +import org.cacert.gigi.output.template.Outputable; import org.cacert.gigi.output.template.SprintfCommand; import org.cacert.gigi.output.template.Template; +import org.cacert.gigi.output.template.TranslateCommand; import org.cacert.gigi.pages.Page; import org.cacert.gigi.pages.PasswordResetPage; import org.cacert.gigi.util.DayDate; @@ -28,6 +31,25 @@ import org.cacert.gigi.util.Notary; public class AssuranceForm extends Form { + public static class ConcatOutputable implements Outputable { + + private Outputable[] outputables; + + public ConcatOutputable(Outputable... outputables) { + this.outputables = outputables; + } + + @Override + public void output(PrintWriter out, Language l, Map vars) { + for (int i = 0; i < outputables.length; i++) { + if (i != 0) { + out.println(); + } + outputables[i].output(out, l, vars); + } + } + } + private User assuree; private Name[] assureeNames; @@ -48,6 +70,8 @@ public class AssuranceForm extends Form { private static final Template templ = new Template(AssuranceForm.class.getResource("AssuranceForm.templ")); + private CountrySelector cs; + public AssuranceForm(HttpServletRequest hsr, User assuree) throws GigiApiException { super(hsr); assurer = Page.getUser(hsr); @@ -73,6 +97,7 @@ public class AssuranceForm extends Form { assureeNames = names.toArray(new Name[names.size()]); dob = this.assuree.getDoB(); selected = new boolean[assureeNames.length]; + cs = new CountrySelector("countryCode", false); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @@ -100,6 +125,8 @@ public class AssuranceForm extends Form { res.put("location", location); res.put("date", date); res.put("aword", aword); + res.put("countryCode", cs); + final LinkedList ats = new LinkedList<>(); for (AssuranceType at : AssuranceType.values()) { try { @@ -128,9 +155,10 @@ public class AssuranceForm extends Form { } @Override - public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException { + public SubmissionResult submit(HttpServletRequest req) throws GigiApiException { location = req.getParameter("location"); date = req.getParameter("date"); + cs.update(req); GigiApiException gae = new GigiApiException(); if (date == null || location == null) { gae.mergeInto(new GigiApiException("You need to enter location and date!")); @@ -187,15 +215,20 @@ public class AssuranceForm extends Form { throw new GigiApiException("You must confirm at least one name to verify an account."); } - Notary.assureAll(assurer, assuree, dob, pointsI, location, req.getParameter("date"), type, toAssure.toArray(new Name[toAssure.size()])); - - if (aword != null && !aword.equals("")) { + Notary.assureAll(assurer, assuree, dob, pointsI, location, req.getParameter("date"), type, toAssure.toArray(new Name[toAssure.size()]), cs.getCountry()); + Outputable result = new TranslateCommand("Verification complete."); + if (isWithPasswordReset()) { Language langApplicant = Language.getInstance(assuree.getPreferredLocale()); String method = langApplicant.getTranslation("A password reset was triggered. If you did a password reset by verification, please enter your secret password using this form:"); String subject = langApplicant.getTranslation("Password reset by verification"); - PasswordResetPage.initPasswordResetProcess(out, assuree, req, aword, langApplicant, method, subject); + PasswordResetPage.initPasswordResetProcess(assuree, req, aword, langApplicant, method, subject); + result = new ConcatOutputable(result, new TranslateCommand("Password reset successful.")); } - return true; + return new SuccessMessageResult(result); + } + + public boolean isWithPasswordReset() { + return aword != null && !aword.equals(""); } public User getAssuree() {