]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/mail/MailOverview.java
upd: better display of (and collection of) error messages
[gigi.git] / src / org / cacert / gigi / pages / account / mail / MailOverview.java
index b875ded430123537b79c74d727047832a5d9cba1..b828b7189d7e6fcc8b10bd966cce9cbf7023003f 100644 (file)
@@ -7,17 +7,19 @@ import java.util.HashMap;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.cacert.gigi.GigiApiException;
 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.pages.Page;
+import org.cacert.gigi.util.AuthorizationContext;
 
 public class MailOverview extends Page {
 
     public static final String DEFAULT_PATH = "/account/mails";
 
-    public MailOverview(String title) {
-        super(title);
+    public MailOverview() {
+        super("Email addresses");
     }
 
     @Override
@@ -35,10 +37,14 @@ public class MailOverview extends Page {
         PrintWriter out = resp.getWriter();
         if (req.getParameter("addmail") != null) {
             MailAddForm f = Form.getForm(req, MailAddForm.class);
-            if (f.submit(out, req)) {
-                resp.sendRedirect(MailOverview.DEFAULT_PATH);
+            try {
+                if (f.submit(out, req)) {
+                    resp.sendRedirect(MailOverview.DEFAULT_PATH);
+                }
+            } catch (GigiApiException e) {
+                e.format(resp.getWriter(), getLanguage(req));
             }
-        } else if (req.getParameter("makedefault") != null || req.getParameter("delete") != null) {
+        } else {
             MailManagementForm f = Form.getForm(req, MailManagementForm.class);
             if (f.submit(out, req)) {
                 resp.sendRedirect(MailOverview.DEFAULT_PATH);
@@ -47,4 +53,8 @@ public class MailOverview extends Page {
         super.doPost(req, resp);
     }
 
+    @Override
+    public boolean isPermitted(AuthorizationContext ac) {
+        return ac != null && ac.getTarget() instanceof User;
+    }
 }