]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/MailAddForm.java
FIX: Cleanup fields
[gigi.git] / src / org / cacert / gigi / pages / account / MailAddForm.java
index 543dff147e7205494fd49d01816d41c9ea3dd3b6..3500faaeb8e080cbe00ee0fbba4fe655487174c8 100644 (file)
@@ -5,41 +5,46 @@ import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
-import org.cacert.gigi.Language;
-import org.cacert.gigi.email.EmailProvider;
+import org.cacert.gigi.EmailAddress;
+import org.cacert.gigi.User;
+import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.Form;
 import org.cacert.gigi.output.template.Template;
+import org.cacert.gigi.pages.Page;
 
 public class MailAddForm extends Form {
-       private static Template t;
-       private String mail;
-       static {
-               t = new Template(ChangePasswordPage.class.getResource("MailAddForm.templ"));
-       }
-
-       public MailAddForm(HttpServletRequest hsr) {
-               super(hsr);
-       }
-
-       @Override
-       public boolean submit(PrintWriter out, HttpServletRequest req) {
-               String formMail = req.getParameter("newemail");
-               if (!EmailProvider.MAIL.matcher(formMail).matches()) {
-                       // TODO Proper error output (css, maybe abstract)
-                       out.println("<b>Error: Invalid address!</b>");
-                       return false;
-               }
-               mail = formMail;
-               return true;
-       }
-
-       public String getMail() {
-               return mail;
-       }
-
-       @Override
-       protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
-               t.output(out, l, vars);
-       }
+
+    private static Template t;
+
+    private String mail;
+    static {
+        t = new Template(ChangePasswordPage.class.getResource("MailAddForm.templ"));
+    }
+
+    private User target;
+
+    public MailAddForm(HttpServletRequest hsr, User target) {
+        super(hsr);
+        this.target = target;
+    }
+
+    @Override
+    public boolean submit(PrintWriter out, HttpServletRequest req) {
+        String formMail = req.getParameter("newemail");
+        mail = formMail;
+        try {
+            EmailAddress addr = new EmailAddress(mail, target);
+            addr.insert(Page.getLanguage(req));
+        } catch (IllegalArgumentException e) {
+            out.println("<div class='formError'>Error: Invalid address!</div>");
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
+        t.output(out, l, vars);
+    }
 
 }