]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/MyDetails.java
upd: enforce a more strict Form call pattern.
[gigi.git] / src / org / cacert / gigi / pages / account / MyDetails.java
index 6bce47b8cac5e1e7a7271dc3896f13c686359fc0..e6ba3ead537408fa6f1e36a0abfe480f01e4884a 100644 (file)
@@ -1,7 +1,5 @@
 package org.cacert.gigi.pages.account;
 
-import static org.cacert.gigi.Gigi.USER;
-
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.HashMap;
@@ -9,39 +7,50 @@ import java.util.HashMap;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.cacert.gigi.User;
-import org.cacert.gigi.output.DateSelector;
+import org.cacert.gigi.output.template.Form;
+import org.cacert.gigi.pages.LoginPage;
 import org.cacert.gigi.pages.Page;
-import org.cacert.gigi.util.HTMLEncoder;
 
 public class MyDetails extends Page {
 
-       public MyDetails() {
-               super("My Details");
-       }
-
-       public static final String PATH = "/account/details";
-
-       @Override
-       public void doGet(HttpServletRequest req, HttpServletResponse resp)
-                       throws IOException {
-               User u = (User) req.getSession().getAttribute(USER);
-
-               PrintWriter out = resp.getWriter();
-               HashMap<String, Object> map = new HashMap<String, Object>();
-               map.put("fname", HTMLEncoder.encodeHTML(u.getFname()));
-               map.put("mname",
-                               u.getMname() == null
-                                               ? ""
-                                               : HTMLEncoder.encodeHTML(u.getMname()));
-               map.put("lname", HTMLEncoder.encodeHTML(u.getLname()));
-               map.put("suffix",
-                               u.getSuffix() == null ? "" : HTMLEncoder.encodeHTML(u
-                                               .getSuffix()));
-               DateSelector ds = new DateSelector("day", "month", "year");
-               map.put("DoB", ds);
-               map.put("details", "");
-               getDefaultTemplate().output(out, getLanguage(req), map);
-
-       }
+    public MyDetails() {
+        super("My Details");
+    }
+
+    public static final String PATH = "/account/details";
+
+    @Override
+    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+        PrintWriter out = resp.getWriter();
+        HashMap<String, Object> map = new HashMap<String, Object>();
+        MyDetailsForm form = new MyDetailsForm(req, getUser(req));
+        map.put("detailsForm", form);
+        if (LoginPage.getUser(req).getOrganisations().size() != 0) {
+            map.put("orgaForm", new MyOrganisationsForm(req));
+        }
+        getDefaultTemplate().output(out, getLanguage(req), map);
+    }
+
+    @Override
+    public boolean beforePost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+        if (req.getParameter("orgaForm") != null) {
+            return Form.getForm(req, MyOrganisationsForm.class).submitExceptionProtected(req, resp);
+        }
+        if (req.getParameter("action") != null || req.getParameter("removeName") != null || req.getParameter("deprecateName") != null || req.getParameter("preferred") != null) {
+            return Form.getForm(req, MyDetailsForm.class).submitExceptionProtected(req, resp);
+        }
+        return false;
+    }
+
+    @Override
+    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+        if (Form.printFormErrors(req, resp.getWriter())) {
+            if (req.getParameter("orgaForm") != null) {
+                Form.getForm(req, MyOrganisationsForm.class).output(resp.getWriter(), getLanguage(req), new HashMap<String, Object>());
+            }
+            if (req.getParameter("action") != null || req.getParameter("removeName") != null || req.getParameter("deprecateName") != null || req.getParameter("preferred") != null) {
+                Form.getForm(req, MyDetailsForm.class).output(resp.getWriter(), getLanguage(req), new HashMap<String, Object>());
+            }
+        }
+    }
 }