]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/wot/AssurePage.java
Implement better result of "Notary.assure"
[gigi.git] / src / org / cacert / gigi / pages / wot / AssurePage.java
index a59b0b14edc95483d36fa198afa21a09afabb47f..f553793e5d3d4ebd47d1e0e1cc9ff5d557f0a942 100644 (file)
@@ -1,6 +1,7 @@
 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;
@@ -15,9 +16,11 @@ import org.cacert.gigi.User;
 import org.cacert.gigi.database.DatabaseConnection;
 import org.cacert.gigi.output.DateSelector;
 import org.cacert.gigi.output.Template;
+import org.cacert.gigi.output.Form.CSRFError;
 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 {
        public static final String PATH = "/wot/assure";
@@ -27,6 +30,8 @@ public class AssurePage extends Page {
 
        public AssurePage() {
                super("Assure someone");
+               t = new Template(new InputStreamReader(
+                               AssuranceForm.class.getResourceAsStream("AssureeSearch.templ")));
 
        }
 
@@ -39,8 +44,10 @@ public class AssurePage extends Page {
                if (pi.length() > 1) {
                        User myself = LoginPage.getUser(req);
                        int mid = Integer.parseInt(pi.substring(1));
-
-                       if (!Notary.checkAssuranceIsPossible(myself, new User(mid), out)) {
+                       AssuranceResult check = Notary.checkAssuranceIsPossible(myself,
+                                       new User(mid));
+                       if (check != AssuranceResult.ASSURANCE_SUCCEDED) {
+                               out.println(translate(req, check.getMessage()));
                                return;
                        }
                        HttpSession hs = req.getSession();
@@ -76,7 +83,12 @@ public class AssurePage extends Page {
                                out.println("No form found. This is an Error. Fill in the form again.");
                                return;
                        }
-                       form.submit(out, req);
+                       try {
+                               form.submit(out, req);
+                       } catch (CSRFError e) {
+                               resp.sendError(500, "CSRF Failed");
+                               out.println(translate(req, "CSRF Token failed."));
+                       }
 
                        return;
                }