From ed26a914878caf7fc51262a759d21f9313943cfa Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Wed, 23 Jul 2014 18:32:42 +0200 Subject: [PATCH] Factor out email sending from "Signup". --- src/org/cacert/gigi/EmailAddress.java | 5 +-- .../gigi/pages/account/MailAddForm.java | 3 +- src/org/cacert/gigi/pages/main/Signup.java | 36 +++---------------- 3 files changed, 8 insertions(+), 36 deletions(-) diff --git a/src/org/cacert/gigi/EmailAddress.java b/src/org/cacert/gigi/EmailAddress.java index 3f4211a5..feb65915 100644 --- a/src/org/cacert/gigi/EmailAddress.java +++ b/src/org/cacert/gigi/EmailAddress.java @@ -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) { diff --git a/src/org/cacert/gigi/pages/account/MailAddForm.java b/src/org/cacert/gigi/pages/account/MailAddForm.java index bdbf0a39..bea2ef1f 100644 --- a/src/org/cacert/gigi/pages/account/MailAddForm.java +++ b/src/org/cacert/gigi/pages/account/MailAddForm.java @@ -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; } diff --git a/src/org/cacert/gigi/pages/main/Signup.java b/src/org/cacert/gigi/pages/main/Signup.java index 70d9c863..1847d9c2 100644 --- a/src/org/cacert/gigi/pages/main/Signup.java +++ b/src/org/cacert/gigi/pages/main/Signup.java @@ -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(); -- 2.39.2