X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fwot%2FAssuranceForm.java;h=36e5247ca87191281c473d7f07b8c19653d08570;hp=28a1ddfbd0a3dc935fb79f571448d9c066bb7374;hb=4b91927aa8d90226414872ce5b3006d0e0f5d273;hpb=0ac17316346e717b61be96c04b68b8a17cb204a5 diff --git a/src/org/cacert/gigi/pages/wot/AssuranceForm.java b/src/org/cacert/gigi/pages/wot/AssuranceForm.java index 28a1ddfb..36e5247c 100644 --- a/src/org/cacert/gigi/pages/wot/AssuranceForm.java +++ b/src/org/cacert/gigi/pages/wot/AssuranceForm.java @@ -1,16 +1,91 @@ package org.cacert.gigi.pages.wot; import java.io.PrintWriter; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; import java.util.Map; -import org.cacert.gigi.Language; -import org.cacert.gigi.output.Outputable; +import javax.servlet.http.HttpServletRequest; -public class AssuranceForm implements Outputable { +import org.cacert.gigi.GigiApiException; +import org.cacert.gigi.dbObjects.Name; +import org.cacert.gigi.dbObjects.User; +import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.output.template.Form; +import org.cacert.gigi.output.template.Template; +import org.cacert.gigi.pages.Page; +import org.cacert.gigi.util.Notary; - @Override - public void output(PrintWriter out, Language l, Map vars) { +public class AssuranceForm extends Form { - } + private User assuree; + + private Name assureeName; + + private Date dob; + + private static final Template templ; + static { + templ = new Template(AssuranceForm.class.getResource("AssuranceForm.templ")); + } + + public AssuranceForm(HttpServletRequest hsr, User assuree) { + super(hsr); + this.assuree = assuree; + assureeName = this.assuree.getName(); + dob = this.assuree.getDoB(); + } + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + SimpleDateFormat sdf2 = new SimpleDateFormat("dd. MMM yyyy"); + + @Override + public void outputContent(PrintWriter out, Language l, Map vars) { + HashMap res = new HashMap(); + 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())); + templ.output(out, l, res); + } + + @Override + public boolean submit(PrintWriter out, HttpServletRequest req) { + 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"); + + } + int pointsI = 0; + String points = req.getParameter("points"); + if (points == null || "".equals(points)) { + outputError(out, req, "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."); + } + } + + if (isFailed(out)) { + return false; + } + try { + Notary.assure(Page.getUser(req), assuree, assureeName, dob, pointsI, req.getParameter("location"), req.getParameter("date")); + return true; + } catch (GigiApiException e) { + e.format(out, Page.getLanguage(req)); + } + + return false; + } + + public User getAssuree() { + return assuree; + } }