X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fwot%2FAssuranceForm.java;h=919128fff37fd579280aedcd366fbbdfea91a88f;hb=d1080ab12183cad2bab5d1f94bafe67960fbf4c8;hp=6e37ecc88fdafd8412a344526108f39ace94e167;hpb=6887ff6c8341dfafc1caf627b853a1b05eaf5af1;p=gigi.git diff --git a/src/org/cacert/gigi/pages/wot/AssuranceForm.java b/src/org/cacert/gigi/pages/wot/AssuranceForm.java index 6e37ecc8..919128ff 100644 --- a/src/org/cacert/gigi/pages/wot/AssuranceForm.java +++ b/src/org/cacert/gigi/pages/wot/AssuranceForm.java @@ -6,16 +6,20 @@ 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; @@ -39,6 +43,8 @@ public class AssuranceForm extends Form { private User assurer; + private AssuranceType type = AssuranceType.FACE_TO_FACE; + private static final Template templ; static { templ = new Template(AssuranceForm.class.getResource("AssuranceForm.templ")); @@ -68,6 +74,30 @@ public class AssuranceForm extends Form { 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); } @@ -91,6 +121,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"); @@ -108,7 +146,7 @@ public class AssuranceForm extends Form { return false; } try { - Notary.assure(assurer, 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);