]> 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 9f9a344c42c311a9fbcc0a6f1a69a418be4bbf71..e6ba3ead537408fa6f1e36a0abfe480f01e4884a 100644 (file)
@@ -7,7 +7,8 @@ import java.util.HashMap;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.cacert.gigi.output.Form;
+import org.cacert.gigi.output.template.Form;
+import org.cacert.gigi.pages.LoginPage;
 import org.cacert.gigi.pages.Page;
 
 public class MyDetails extends Page {
@@ -23,21 +24,33 @@ public class MyDetails extends Page {
         PrintWriter out = resp.getWriter();
         HashMap<String, Object> map = new HashMap<String, Object>();
         MyDetailsForm form = new MyDetailsForm(req, getUser(req));
-        MyListingForm listingForm = new MyListingForm(req, getUser(req));
         map.put("detailsForm", form);
-        map.put("contactMeForm", listingForm);
+        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(req.getParameter("processDetails") != null) {
-            MyDetailsForm form = Form.getForm(req, MyDetailsForm.class);
-            form.submit(resp.getWriter(), req);
-        } else if (req.getParameter("processContact") != null) {
-            MyListingForm form = Form.getForm(req, MyListingForm.class);
-            form.submit(resp.getWriter(), req);
+        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>());
+            }
         }
-        super.doPost(req, resp);
     }
 }