X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fwot%2FAssurePage.java;h=aa99a2fbb7e992278bea88d93a4becdc587352d9;hb=d914944d45e769edf887466f979afa3f403f2b39;hp=d7074d520104a7b184ce35e778ba28cfa6f976a0;hpb=d895448cb685adc4c2bfac8d92759252d2ce8c36;p=gigi.git diff --git a/src/org/cacert/gigi/pages/wot/AssurePage.java b/src/org/cacert/gigi/pages/wot/AssurePage.java index d7074d52..aa99a2fb 100644 --- a/src/org/cacert/gigi/pages/wot/AssurePage.java +++ b/src/org/cacert/gigi/pages/wot/AssurePage.java @@ -2,23 +2,22 @@ package org.cacert.gigi.pages.wot; import java.io.IOException; import java.io.PrintWriter; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; import java.util.HashMap; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.cacert.gigi.User; +import org.cacert.gigi.GigiApiException; import org.cacert.gigi.database.DatabaseConnection; +import org.cacert.gigi.database.GigiPreparedStatement; +import org.cacert.gigi.database.GigiResultSet; +import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.output.DateSelector; import org.cacert.gigi.output.Form; import org.cacert.gigi.output.template.Template; import org.cacert.gigi.pages.LoginPage; import org.cacert.gigi.pages.Page; import org.cacert.gigi.util.Notary; -import org.cacert.gigi.util.Notary.AssuranceResult; public class AssurePage extends Page { @@ -39,27 +38,22 @@ public class AssurePage extends Page { PrintWriter out = resp.getWriter(); String pi = req.getPathInfo().substring(PATH.length()); - if (pi.length() > 1) { - int mid = Integer.parseInt(pi.substring(1)); - AssuranceForm form = new AssuranceForm(req, mid); - outputForm(req, out, mid, form); - - } else { - HashMap vars = new HashMap(); - vars.put("DoB", ds); - t.output(out, getLanguage(req), vars); - } + HashMap vars = new HashMap(); + vars.put("DoB", ds); + t.output(out, getLanguage(req), vars); + } + + @Override + public boolean isPermitted(User u) { + return u != null && u.canAssure(); } - private void outputForm(HttpServletRequest req, PrintWriter out, int mid, AssuranceForm form) { + private void outputForm(HttpServletRequest req, PrintWriter out, AssuranceForm form) { User myself = LoginPage.getUser(req); - AssuranceResult check = Notary.checkAssuranceIsPossible(myself, new User(mid)); - if (check != AssuranceResult.ASSURANCE_SUCCEDED) { - out.println(translate(req, check.getMessage())); - return; - } - if (form == null || form.getAssuree().getId() != mid) { - form = new AssuranceForm(req, mid); + try { + Notary.checkAssuranceIsPossible(myself, form.getAssuree()); + } catch (GigiApiException e) { + e.format(out, Page.getLanguage(req)); } form.output(out, getLanguage(req), new HashMap()); @@ -68,31 +62,20 @@ public class AssurePage extends Page { @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { PrintWriter out = resp.getWriter(); - String pi = req.getPathInfo().substring(PATH.length()); - if (pi.length() > 1) { - User myself = getUser(req); - int mid = Integer.parseInt(pi.substring(1)); - if (mid == myself.getId()) { - out.println(translate(req, "Cannot assure myself.")); - return; - } - + if (req.getParameter("search") == null) { AssuranceForm form = Form.getForm(req, AssuranceForm.class); - if (mid != form.getAssuree().getId()) { - return; - } if (form.submit(out, req)) { out.println(translate(req, "Assurance complete.")); } else { - outputForm(req, resp.getWriter(), mid, form); + outputForm(req, resp.getWriter(), form); } return; } - ResultSet rs = null; + GigiResultSet rs = null; try { - PreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT id, verified FROM users WHERE email=? AND dob=? AND deleted=0"); + GigiPreparedStatement 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); @@ -106,8 +89,12 @@ public class AssurePage extends Page { } else { if (verified == 0) { out.println(translate(req, "User is not yet verified. Please try again in 24 hours!")); + } else if (getUser(req).getId() == id) { + + } else { + AssuranceForm form = new AssuranceForm(req, User.getById(id)); + outputForm(req, out, form); } - resp.sendRedirect(PATH + "/" + id); } } else { out.print("
"); @@ -117,15 +104,9 @@ public class AssurePage extends Page { } rs.close(); - } catch (SQLException e) { - e.printStackTrace(); } finally { - try { - if (rs != null) { - rs.close(); - } - } catch (SQLException e) { - e.printStackTrace(); + if (rs != null) { + rs.close(); } } }