]> WPIA git - gigi.git/blob - src/org/cacert/gigi/pages/account/mail/MailAddForm.java
upd: better display of (and collection of) error messages
[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 Template t;
20
21     private String mail;
22     static {
23         t = new Template(MailAddForm.class.getResource("MailAddForm.templ"));
24     }
25
26     private User target;
27
28     public MailAddForm(HttpServletRequest hsr, User target) {
29         super(hsr);
30         this.target = target;
31     }
32
33     @Override
34     public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
35         String formMail = req.getParameter("newemail");
36         mail = formMail;
37         try {
38             new EmailAddress(target, mail, Page.getLanguage(req).getLocale());
39         } catch (IllegalArgumentException e) {
40             throw new GigiApiException(new PlainOutputable("Invalid address."));
41         }
42         return true;
43     }
44
45     @Override
46     protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
47         t.output(out, l, vars);
48     }
49
50 }