1 package club.wpia.gigi.pages.account.mail;
3 import java.io.IOException;
4 import java.util.HashMap;
6 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpServletResponse;
9 import club.wpia.gigi.dbObjects.User;
10 import club.wpia.gigi.localisation.Language;
11 import club.wpia.gigi.output.template.Form;
12 import club.wpia.gigi.output.template.Form.CSRFException;
13 import club.wpia.gigi.pages.ManagedMultiFormPage;
14 import club.wpia.gigi.pages.Page;
15 import club.wpia.gigi.util.AuthorizationContext;
17 public class MailOverview extends ManagedMultiFormPage {
19 public static final String DEFAULT_PATH = "/account/mails";
21 public MailOverview() {
22 super("Email addresses");
26 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
27 User user = getUser(req);
28 output(req, resp, new MailAddForm(req, user), new MailManagementForm(req, user));
31 private void output(HttpServletRequest req, HttpServletResponse resp, MailAddForm addForm, MailManagementForm mgmtForm) throws IOException {
32 Language lang = Page.getLanguage(req);
33 HashMap<String, Object> vars = new HashMap<>();
34 vars.put("addForm", addForm);
35 vars.put("manForm", mgmtForm);
36 getDefaultTemplate().output(resp.getWriter(), lang, vars);
40 public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
41 Form current = getForm(req);
42 if (Form.printFormErrors(req, resp.getWriter())) {
43 User user = getUser(req);
44 if (current instanceof MailAddForm) {
45 output(req, resp, (MailAddForm) current, new MailManagementForm(req, user));
47 output(req, resp, new MailAddForm(req, user), (MailManagementForm) current);
53 public Form getForm(HttpServletRequest req) throws CSRFException {
54 if (req.getParameter("addmail") != null) {
55 return Form.getForm(req, MailAddForm.class);
57 return Form.getForm(req, MailManagementForm.class);
62 public boolean isPermitted(AuthorizationContext ac) {
63 return ac != null && ac.getTarget() instanceof User;