]> 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 134307f8368880d5a26318958788f779e1bf937f..e6ba3ead537408fa6f1e36a0abfe480f01e4884a 100644 (file)
@@ -1,7 +1,5 @@
 package org.cacert.gigi.pages.account;
 
-import static org.cacert.gigi.Gigi.*;
-
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.HashMap;
@@ -9,10 +7,9 @@ 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 {
 
@@ -24,18 +21,36 @@ public class MyDetails extends Page {
 
     @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", u.getDob());
-        map.put("DoB", ds);
-        map.put("details", "");
+        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>());
+            }
+        }
     }
 }