]> WPIA git - gigi.git/commitdiff
UPD: added functional mail add
authorJanis Streib <janis@dogcraft.de>
Wed, 23 Jul 2014 01:50:09 +0000 (03:50 +0200)
committerFelix Dörre <felix@dogcraft.de>
Thu, 24 Jul 2014 23:44:28 +0000 (01:44 +0200)
src/org/cacert/gigi/email/EmailProvider.java
src/org/cacert/gigi/pages/account/MailAddForm.java
src/org/cacert/gigi/pages/account/MailOverview.java

index 0efe603e42cf77fc161049566d5f4a0bcd519533..f6a70912910681b5c34376d3e448a2d944dcc66b 100644 (file)
@@ -34,7 +34,7 @@ public abstract class EmailProvider {
 
        public static final String OK = "OK";
        public static final String FAIL = "FAIL";
-       private static final Pattern MAIL = Pattern
+       public static final Pattern MAIL = Pattern
                .compile("^([a-zA-Z0-9])+([a-zA-Z0-9\\+\\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\\._-]+)+$");
 
        public String checkEmailServer(int forUid, String address) throws IOException {
index a36c20214dabed100cecbd9023b8d0a0fa813e57..543dff147e7205494fd49d01816d41c9ea3dd3b6 100644 (file)
@@ -6,11 +6,13 @@ import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 
 import org.cacert.gigi.Language;
+import org.cacert.gigi.email.EmailProvider;
 import org.cacert.gigi.output.Form;
 import org.cacert.gigi.output.template.Template;
 
 public class MailAddForm extends Form {
        private static Template t;
+       private String mail;
        static {
                t = new Template(ChangePasswordPage.class.getResource("MailAddForm.templ"));
        }
@@ -21,7 +23,18 @@ public class MailAddForm extends Form {
 
        @Override
        public boolean submit(PrintWriter out, HttpServletRequest req) {
-               return false;
+               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
index c90ff92b93305ecb7701496f22449c349adbadc9..5c5c9f35455596d05bb9f651bf17236af64cafb0 100644 (file)
@@ -11,12 +11,15 @@ import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.cacert.gigi.EmailAddress;
 import org.cacert.gigi.Language;
 import org.cacert.gigi.User;
 import org.cacert.gigi.database.DatabaseConnection;
+import org.cacert.gigi.output.Form;
 import org.cacert.gigi.output.Outputable;
 import org.cacert.gigi.pages.LoginPage;
 import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.RandomToken;
 
 public class MailOverview extends Page {
        public static final String DEFAULT_PATH = "/account/mails";
@@ -51,7 +54,19 @@ public class MailOverview extends Page {
 
        @Override
        public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
-               System.out.println();
+               PrintWriter out = resp.getWriter();
+               User us = LoginPage.getUser(req);
+               if (req.getParameter("addmail") != null) {
+                       MailAddForm f = Form.getForm(req, MailAddForm.class);
+                       if (f.submit(out, req)) {
+                               EmailAddress addr = new EmailAddress(f.getMail(), us, RandomToken.generateToken(16));
+                               addr.insert();
+                       }
+               } else if (req.getParameter("makedefault") != null || req.getParameter("delete") != null) {
+                       System.out.println("MakeDefault/Delete");
+                       MailManagementForm f = Form.getForm(req, MailManagementForm.class);
+                       f.submit(out, req);
+               }
                super.doPost(req, resp);
        }