]> WPIA git - gigi.git/blob - src/org/cacert/gigi/pages/account/MyDetails.java
upd: use a more strict pattern for handling forms
[gigi.git] / src / org / cacert / gigi / pages / account / MyDetails.java
1 package org.cacert.gigi.pages.account;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.util.HashMap;
6
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
9
10 import org.cacert.gigi.output.template.Form;
11 import org.cacert.gigi.pages.LoginPage;
12 import org.cacert.gigi.pages.Page;
13
14 public class MyDetails extends Page {
15
16     public MyDetails() {
17         super("My Details");
18     }
19
20     public static final String PATH = "/account/details";
21
22     @Override
23     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
24         PrintWriter out = resp.getWriter();
25         HashMap<String, Object> map = new HashMap<String, Object>();
26         MyDetailsForm form = new MyDetailsForm(req, getUser(req));
27         map.put("detailsForm", form);
28         if (LoginPage.getUser(req).getOrganisations().size() != 0) {
29             map.put("orgaForm", new MyOrganisationsForm(req));
30         }
31         getDefaultTemplate().output(out, getLanguage(req), map);
32     }
33
34     @Override
35     public boolean beforePost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
36         if (req.getParameter("orgaForm") != null && Form.getForm(req, MyOrganisationsForm.class).submitExceptionProtected(req)) {
37             resp.sendRedirect(PATH);
38             return true;
39         }
40         if (req.getParameter("action") != null || req.getParameter("removeName") != null || req.getParameter("deprecateName") != null || req.getParameter("preferred") != null) {
41             if (Form.getForm(req, MyDetailsForm.class).submitExceptionProtected(req)) {
42                 resp.sendRedirect(PATH);
43                 return true;
44             }
45         }
46         return false;
47     }
48
49     @Override
50     public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
51         if (Form.printFormErrors(req, resp.getWriter())) {
52             if (req.getParameter("orgaForm") != null) {
53                 Form.getForm(req, MyOrganisationsForm.class).output(resp.getWriter(), getLanguage(req), new HashMap<String, Object>());
54             }
55             if (req.getParameter("action") != null || req.getParameter("removeName") != null || req.getParameter("deprecateName") != null || req.getParameter("preferred") != null) {
56                 Form.getForm(req, MyDetailsForm.class).output(resp.getWriter(), getLanguage(req), new HashMap<String, Object>());
57             }
58         }
59     }
60 }