From 3fb5d9ffc2fddb0c713abf22cfe6583fd1140813 Mon Sep 17 00:00:00 2001 From: Janis Streib Date: Wed, 23 Jul 2014 03:50:09 +0200 Subject: [PATCH] UPD: added functional mail add --- src/org/cacert/gigi/email/EmailProvider.java | 2 +- .../cacert/gigi/pages/account/MailAddForm.java | 15 ++++++++++++++- .../cacert/gigi/pages/account/MailOverview.java | 17 ++++++++++++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/org/cacert/gigi/email/EmailProvider.java b/src/org/cacert/gigi/email/EmailProvider.java index 0efe603e..f6a70912 100644 --- a/src/org/cacert/gigi/email/EmailProvider.java +++ b/src/org/cacert/gigi/email/EmailProvider.java @@ -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 { diff --git a/src/org/cacert/gigi/pages/account/MailAddForm.java b/src/org/cacert/gigi/pages/account/MailAddForm.java index a36c2021..543dff14 100644 --- a/src/org/cacert/gigi/pages/account/MailAddForm.java +++ b/src/org/cacert/gigi/pages/account/MailAddForm.java @@ -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("Error: Invalid address!"); + return false; + } + mail = formMail; + return true; + } + + public String getMail() { + return mail; } @Override diff --git a/src/org/cacert/gigi/pages/account/MailOverview.java b/src/org/cacert/gigi/pages/account/MailOverview.java index c90ff92b..5c5c9f35 100644 --- a/src/org/cacert/gigi/pages/account/MailOverview.java +++ b/src/org/cacert/gigi/pages/account/MailOverview.java @@ -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); } -- 2.39.2