]> WPIA git - gigi.git/commitdiff
Factor out email sending from "Signup".
authorFelix Dörre <felix@dogcraft.de>
Wed, 23 Jul 2014 16:32:42 +0000 (18:32 +0200)
committerFelix Dörre <felix@dogcraft.de>
Thu, 24 Jul 2014 23:44:35 +0000 (01:44 +0200)
src/org/cacert/gigi/EmailAddress.java
src/org/cacert/gigi/pages/account/MailAddForm.java
src/org/cacert/gigi/pages/main/Signup.java

index 3f4211a51eb95df4b0965a665e4fbdfa197c506c..feb65915cd1397404683834fb3563273252f1f14 100644 (file)
@@ -7,6 +7,7 @@ import java.sql.SQLException;
 
 import org.cacert.gigi.database.DatabaseConnection;
 import org.cacert.gigi.email.EmailProvider;
+import org.cacert.gigi.util.RandomToken;
 import org.cacert.gigi.util.ServerConstants;
 
 public class EmailAddress {
@@ -31,10 +32,10 @@ public class EmailAddress {
                rs.close();
        }
 
-       public EmailAddress(String address, User owner, String hash) {
+       public EmailAddress(String address, User owner) {
                this.address = address;
                this.owner = owner;
-               this.hash = hash;
+               this.hash = RandomToken.generateToken(16);
        }
 
        public void insert(Language l) {
index bdbf0a39602be9d109014b9c5541994cd432d8b6..bea2ef1f11f8164f3bd6296f7c05f3d5186e1787 100644 (file)
@@ -12,7 +12,6 @@ import org.cacert.gigi.email.EmailProvider;
 import org.cacert.gigi.output.Form;
 import org.cacert.gigi.output.template.Template;
 import org.cacert.gigi.pages.Page;
-import org.cacert.gigi.util.RandomToken;
 
 public class MailAddForm extends Form {
        private static Template t;
@@ -36,7 +35,7 @@ public class MailAddForm extends Form {
                        return false;
                }
                mail = formMail;
-               EmailAddress addr = new EmailAddress(mail, target, RandomToken.generateToken(16));
+               EmailAddress addr = new EmailAddress(mail, target);
                addr.insert(Page.getLanguage(req));
                return true;
        }
index 70d9c8630b39c0a77e9cf3ecc3ac954fea7d99f4..1847d9c29759168640b0b824ef28768dbd42b286 100644 (file)
@@ -11,6 +11,7 @@ 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.database.DatabaseConnection;
@@ -22,8 +23,6 @@ import org.cacert.gigi.pages.Page;
 import org.cacert.gigi.util.HTMLEncoder;
 import org.cacert.gigi.util.Notary;
 import org.cacert.gigi.util.PasswordStrengthChecker;
-import org.cacert.gigi.util.RandomToken;
-import org.cacert.gigi.util.ServerConstants;
 
 public class Signup extends Form {
        User buildup = new User();
@@ -197,19 +196,14 @@ public class Signup extends Form {
        private void run(HttpServletRequest req, String password) throws SQLException {
                try {
                        DatabaseConnection.getInstance().beginTransaction();
-                       String hash = RandomToken.generateToken(16);
 
                        buildup.setDob(myDoB.getDate());
                        buildup.insert(password);
                        int memid = buildup.getId();
+                       EmailAddress ea = new EmailAddress(buildup.getEmail(), buildup);
+                       ea.insert(Page.getLanguage(req));
+
                        PreparedStatement ps = DatabaseConnection.getInstance().prepare(
-                               "insert into `email` set `email`=?," + " `hash`=?, `created`=NOW(),`memid`=?");
-                       ps.setString(1, buildup.getEmail());
-                       ps.setString(2, hash);
-                       ps.setInt(3, memid);
-                       ps.execute();
-                       int emailid = DatabaseConnection.lastInsertId(ps);
-                       ps = DatabaseConnection.getInstance().prepare(
                                "insert into `alerts` set `memid`=?," + " `general`=?, `country`=?, `regional`=?, `radius`=?");
                        ps.setInt(1, memid);
                        ps.setString(2, general ? "1" : "0");
@@ -219,28 +213,6 @@ public class Signup extends Form {
                        ps.execute();
                        Notary.writeUserAgreement(memid, "CCA", "account creation", "", true, 0);
 
-                       StringBuffer body = new StringBuffer();
-                       body.append(Page
-                               .translate(
-                                       req,
-                                       "Thanks for signing up with CAcert.org, below is the link you need to open to verify your account. Once your account is verified you will be able to start issuing certificates till your hearts' content!"));
-                       body.append("\n\nhttps://");
-                       body.append(ServerConstants.getWwwHostNamePort());
-                       body.append("/verify?type=email&id=");
-                       body.append(emailid);
-                       body.append("&hash=");
-                       body.append(hash);
-                       body.append("\n\n");
-                       body.append(Page.translate(req, "Best regards"));
-                       body.append("\n");
-                       body.append(Page.translate(req, "CAcert.org Support!"));
-                       try {
-                               EmailProvider.getInstance().sendmail(buildup.getEmail(),
-                                       "[CAcert.org] " + Page.translate(req, "Mail Probe"), body.toString(), "support@cacert.org", null,
-                                       null, null, null, false);
-                       } catch (IOException e) {
-                               e.printStackTrace();
-                       }
                        DatabaseConnection.getInstance().commitTransaction();
                } finally {
                        DatabaseConnection.getInstance().quitTransaction();