]> WPIA git - gigi.git/blob - src/org/cacert/gigi/pages/account/mail/MailAddForm.java
upd: enforce a more strict Form call pattern.
[gigi.git] / src / org / cacert / gigi / pages / account / mail / MailAddForm.java
1 package org.cacert.gigi.pages.account.mail;
2
3 import java.io.PrintWriter;
4 import java.util.Map;
5
6 import javax.servlet.http.HttpServletRequest;
7
8 import org.cacert.gigi.GigiApiException;
9 import org.cacert.gigi.dbObjects.EmailAddress;
10 import org.cacert.gigi.dbObjects.User;
11 import org.cacert.gigi.localisation.Language;
12 import org.cacert.gigi.output.template.Form;
13 import org.cacert.gigi.output.template.PlainOutputable;
14 import org.cacert.gigi.output.template.Template;
15 import org.cacert.gigi.pages.Page;
16
17 public class MailAddForm extends Form {
18
19     private static final Template t = new Template(MailAddForm.class.getResource("MailAddForm.templ"));;
20
21     private String mail;
22
23     private User target;
24
25     public MailAddForm(HttpServletRequest hsr, User target) {
26         super(hsr);
27         this.target = target;
28     }
29
30     @Override
31     public SubmissionResult submit(HttpServletRequest req) throws GigiApiException {
32         String formMail = req.getParameter("newemail");
33         mail = formMail;
34         try {
35             new EmailAddress(target, mail, Page.getLanguage(req).getLocale());
36         } catch (IllegalArgumentException e) {
37             throw new GigiApiException(new PlainOutputable("Invalid address."));
38         }
39         return new RedirectResult(MailOverview.DEFAULT_PATH);
40     }
41
42     @Override
43     protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
44         t.output(out, l, vars);
45     }
46
47 }