]> WPIA git - gigi.git/commitdiff
Carry out assurance for now.
authorFelix Dörre <felix@dogcraft.de>
Fri, 27 Jun 2014 16:06:54 +0000 (18:06 +0200)
committerFelix Dörre <felix@dogcraft.de>
Fri, 27 Jun 2014 16:06:54 +0000 (18:06 +0200)
src/org/cacert/gigi/pages/wot/AssuranceForm.java
src/org/cacert/gigi/pages/wot/AssurePage.java

index b57f73c2cb8b7c4b8525c81390c0a2126de12c17..056a28ab6963714cc5ce0ee5a2222ea10e31991f 100644 (file)
@@ -2,6 +2,7 @@ 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;
@@ -14,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;
@@ -82,10 +85,23 @@ public class AssuranceForm extends Form {
                        failed = true;
                }
                // TODO checkPoints
+               String points = req.getParameter("points");
+               if (points == null || "".equals(points)) {
+                       // TODO message
+                       failed = true;
+               }
                out.println("</div>");
                if (failed) {
                        return false;
                }
+               try {
+                       boolean success = Notary.assure(LoginPage.getUser(req), assuree,
+                                       Integer.parseInt(req.getParameter("points")),
+                                       req.getParameter("location"), req.getParameter("date"));
+                       return success;
+               } catch (SQLException e) {
+                       e.printStackTrace();
+               }
 
                return false;
        }
index a25f55732f316cd831a2f74138756f728e174950..a59b0b14edc95483d36fa198afa21a09afabb47f 100644 (file)
@@ -1,7 +1,6 @@
 package org.cacert.gigi.pages.wot;
 
 import java.io.IOException;
-import java.io.InputStreamReader;
 import java.io.PrintWriter;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
@@ -18,6 +17,7 @@ import org.cacert.gigi.output.DateSelector;
 import org.cacert.gigi.output.Template;
 import org.cacert.gigi.pages.LoginPage;
 import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.Notary;
 
 public class AssurePage extends Page {
        public static final String PATH = "/wot/assure";
@@ -27,8 +27,7 @@ public class AssurePage extends Page {
 
        public AssurePage() {
                super("Assure someone");
-               t = new Template(new InputStreamReader(
-                               AssurePage.class.getResourceAsStream("AssureeSearch.templ")));
+
        }
 
        @Override
@@ -40,11 +39,10 @@ public class AssurePage extends Page {
                if (pi.length() > 1) {
                        User myself = LoginPage.getUser(req);
                        int mid = Integer.parseInt(pi.substring(1));
-                       if (mid == myself.getId()) {
-                               out.println("Cannot assure myself.");
+
+                       if (!Notary.checkAssuranceIsPossible(myself, new User(mid), out)) {
                                return;
                        }
-
                        HttpSession hs = req.getSession();
                        AssuranceForm form = (AssuranceForm) hs.getAttribute(SESSION);
                        if (form == null || form.assuree.getId() != mid) {
@@ -65,6 +63,13 @@ public class AssurePage extends Page {
                PrintWriter out = resp.getWriter();
                String pi = req.getPathInfo().substring(PATH.length());
                if (pi.length() > 1) {
+                       User myself = LoginPage.getUser(req);
+                       int mid = Integer.parseInt(pi.substring(1));
+                       if (mid == myself.getId()) {
+                               out.println("Cannot assure myself.");
+                               return;
+                       }
+
                        AssuranceForm form = (AssuranceForm) req.getSession().getAttribute(
                                        SESSION);
                        if (form == null) {
@@ -77,24 +82,33 @@ public class AssurePage extends Page {
                }
 
                System.out.println("searching for");
+               ResultSet rs = null;
                try {
-                       PreparedStatement ps = DatabaseConnection.getInstance().prepare(
-                                       "SELECT id FROM users WHERE email=? AND dob=?");
+                       PreparedStatement ps = DatabaseConnection
+                                       .getInstance()
+                                       .prepare(
+                                                       "SELECT id, verified FROM users WHERE email=? AND dob=? AND deleted=0");
                        ps.setString(1, req.getParameter("email"));
                        String day = req.getParameter("year") + "-"
                                        + req.getParameter("month") + "-" + req.getParameter("day");
                        ps.setString(2, day);
-                       ResultSet rs = ps.executeQuery();
+                       rs = ps.executeQuery();
                        int id = 0;
                        if (rs.next()) {
                                id = rs.getInt(1);
+                               int verified = rs.getInt(2);
                                if (rs.next()) {
                                        out.println("Error, ambigous user. Please contact support@cacert.org.");
                                } else {
+                                       if (verified == 0) {
+                                               out.println(translate(req,
+                                                               "User is not yet verified. Please try again in 24 hours!"));
+                                       }
                                        resp.sendRedirect(PATH + "/" + id);
                                }
                        } else {
                                out.print("<div class='formError'>");
+
                                out.println(translate(
                                                req,
                                                "I'm sorry, there was no email and date of birth matching"
@@ -106,6 +120,14 @@ public class AssurePage extends Page {
                        rs.close();
                } catch (SQLException e) {
                        e.printStackTrace();
+               } finally {
+                       try {
+                               if (rs != null) {
+                                       rs.close();
+                               }
+                       } catch (SQLException e) {
+                               e.printStackTrace();
+                       }
                }
        }
 }