]> WPIA git - gigi.git/blobdiff - 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
index 278892aae62fb422890b20da01931935620310b2..47cd8384e831ba7899a9b8b82a553f96afc1b1fe 100644 (file)
@@ -5,22 +5,20 @@ import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.dbObjects.EmailAddress;
 import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.localisation.Language;
-import org.cacert.gigi.output.Form;
+import org.cacert.gigi.output.template.Form;
+import org.cacert.gigi.output.template.PlainOutputable;
 import org.cacert.gigi.output.template.Template;
 import org.cacert.gigi.pages.Page;
-import org.cacert.gigi.pages.account.ChangePasswordPage;
 
 public class MailAddForm extends Form {
 
-    private static Template t;
+    private static final Template t = new Template(MailAddForm.class.getResource("MailAddForm.templ"));;
 
     private String mail;
-    static {
-        t = new Template(ChangePasswordPage.class.getResource("MailAddForm.templ"));
-    }
 
     private User target;
 
@@ -30,17 +28,15 @@ public class MailAddForm extends Form {
     }
 
     @Override
-    public boolean submit(PrintWriter out, HttpServletRequest req) {
+    public SubmissionResult submit(HttpServletRequest req) throws GigiApiException {
         String formMail = req.getParameter("newemail");
         mail = formMail;
         try {
-            EmailAddress addr = new EmailAddress(target, mail);
-            addr.insert(Page.getLanguage(req));
+            new EmailAddress(target, mail, Page.getLanguage(req).getLocale());
         } catch (IllegalArgumentException e) {
-            out.println("<div class='formError'>Error: Invalid address!</div>");
-            return false;
+            throw new GigiApiException(new PlainOutputable("Invalid address."));
         }
-        return true;
+        return new RedirectResult(MailOverview.DEFAULT_PATH);
     }
 
     @Override