]> WPIA git - gigi.git/commitdiff
ADD: Set default mail address
authorJanis Streib <janis@dogcraft.de>
Thu, 24 Jul 2014 21:03:08 +0000 (23:03 +0200)
committerFelix Dörre <felix@dogcraft.de>
Thu, 24 Jul 2014 23:44:39 +0000 (01:44 +0200)
src/org/cacert/gigi/User.java
src/org/cacert/gigi/pages/account/MailManagementForm.java
src/org/cacert/gigi/pages/account/MailOverview.java

index d5b0a9043bce2ff0575a8d48ba9129e05f40a21a..79ea8c68e5b8fe0ba3fc033cf517f13fc193fd06 100644 (file)
@@ -1,9 +1,9 @@
 package org.cacert.gigi;
 
+import java.sql.Date;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.sql.Date;
 import java.util.Calendar;
 
 import org.cacert.gigi.database.DatabaseConnection;
@@ -242,4 +242,24 @@ public class User {
 
                return null;
        }
+
+       public void updateDefaultEmail(EmailAddress newMail) {
+               try {
+                       EmailAddress[] adrs = getEmails();
+                       for (int i = 0; i < adrs.length; i++) {
+                               if (adrs[i].getAddress().equals(newMail.getAddress())) {
+                                       PreparedStatement ps = DatabaseConnection.getInstance().prepare(
+                                               "UPDATE users SET email=? WHERE id=?");
+                                       ps.setString(1, newMail.getAddress());
+                                       ps.setInt(2, getId());
+                                       ps.execute();
+                                       email = newMail.getAddress();
+                                       return;
+                               }
+                       }
+                       throw new IllegalArgumentException("Given address not an address of the user.");
+               } catch (SQLException e) {
+                       e.printStackTrace();
+               }
+       }
 }
index 0eaa16cbb25c3b430dbbf5a1c5a4159f81e4e607..842ad051f8e9f5f9969fae13fb5498b51cda9812 100644 (file)
@@ -5,22 +5,36 @@ import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.cacert.gigi.EmailAddress;
 import org.cacert.gigi.Language;
+import org.cacert.gigi.User;
 import org.cacert.gigi.output.Form;
 import org.cacert.gigi.output.template.Template;
 
 public class MailManagementForm extends Form {
        private static Template t;
+       private User target;
        static {
                t = new Template(ChangePasswordPage.class.getResource("MailManagementForm.templ"));
        }
 
-       public MailManagementForm(HttpServletRequest hsr) {
+       public MailManagementForm(HttpServletRequest hsr, User target) {
                super(hsr);
+               this.target = target;
        }
 
        @Override
        public boolean submit(PrintWriter out, HttpServletRequest req) {
+               if (req.getParameter("makedefault") != null) {
+                       try {
+                               target.updateDefaultEmail(EmailAddress.getById(Integer.parseInt(req.getParameter("emailid").trim())));
+                       } catch (Exception e) {
+                               out.println("<b>Error precessing your request.</b>");
+                               e.printStackTrace();
+                               return false;
+                       }
+                       return true;
+               }
                return false;
        }
 
index 1f229560a6e0c32c260e47c1adfc89caa10c09a6..a1360531f1a45cd097806bd4935a63e218617d44 100644 (file)
@@ -33,14 +33,13 @@ public class MailOverview extends Page {
                vars.put("mailData", t);
                vars.put("us", us);
                vars.put("addForm", new MailAddForm(req, us));
-               vars.put("manForm", new MailManagementForm(req));
+               vars.put("manForm", new MailManagementForm(req, us));
                getDefaultTemplate().output(resp.getWriter(), lang, vars);
        }
 
        @Override
        public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
                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)) {