X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fwot%2FAssuranceForm.java;h=498cd6ad7ed324844394c1963be85a44bed4b01b;hp=5240fc4cd86187cf39c6740524a8b01119627c04;hb=4c18a047f1f09f0fd7c2013bd42bb69c44efb73a;hpb=36af379666d84138230d9c53b583509514ce5e05 diff --git a/src/org/cacert/gigi/pages/wot/AssuranceForm.java b/src/org/cacert/gigi/pages/wot/AssuranceForm.java index 5240fc4c..498cd6ad 100644 --- a/src/org/cacert/gigi/pages/wot/AssuranceForm.java +++ b/src/org/cacert/gigi/pages/wot/AssuranceForm.java @@ -2,6 +2,10 @@ package org.cacert.gigi.pages.wot; import java.io.InputStreamReader; import java.io.PrintWriter; +import java.sql.SQLException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -11,6 +15,8 @@ import org.cacert.gigi.Language; import org.cacert.gigi.User; import org.cacert.gigi.output.Form; import org.cacert.gigi.output.Template; +import org.cacert.gigi.pages.LoginPage; +import org.cacert.gigi.util.Notary; public class AssuranceForm extends Form { User assuree; @@ -23,21 +29,86 @@ public class AssuranceForm extends Form { public AssuranceForm(int assuree) { this.assuree = new User(assuree); } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @Override public void output(PrintWriter out, Language l, Map vars) { HashMap res = new HashMap(); res.putAll(vars); res.put("name", assuree.getName()); + res.put("dob", sdf.format(assuree.getDob())); templ.output(out, l, res); } @Override public boolean submit(PrintWriter out, HttpServletRequest req) { - if (!"1".equals(req.getAttribute("certify"))) { - // s + out.println("
"); + boolean failed = false; + 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"); + failed = true; + + } + if (req.getParameter("date") == null + || req.getParameter("date").equals("")) { + outputError(out, req, + "You must enter the date when you met the assuree."); + failed = true; + } else { + try { + Date d = sdf.parse(req.getParameter("date")); + if (d.getTime() > System.currentTimeMillis()) { + outputError(out, req, + "You must not enter a date in the future."); + failed = true; + } + } catch (ParseException e) { + outputError(out, req, + "You must enter the date in this format: YYYY-MM-DD."); + failed = true; + } + } + // check location, min 3 characters + if (req.getParameter("location") == null + || req.getParameter("location").equals("")) { + outputError(out, req, + "You failed to enter a location of your meeting."); + failed = true; + } else if (req.getParameter("location").length() <= 2) { + outputError(out, req, + "You must enter a location with at least 3 characters eg town and country."); + failed = true; + } + // TODO checkPoints + String points = req.getParameter("points"); + if (points == null || "".equals(points)) { + // TODO message + failed = true; } + if (failed) { + out.println("
"); + return false; + } + try { + boolean success = Notary.assure(LoginPage.getUser(req), assuree, + Integer.parseInt(req.getParameter("points")), + req.getParameter("location"), req.getParameter("date")); + if (!success) { + outputError(out, req, + "Assurance failed. Maybe user data changed."); + } + out.println(""); + return success; + } catch (SQLException e) { + e.printStackTrace(); + } + + out.println(""); return false; } }