]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/PasswordResetPage.java
upd: transform existing mails into mail templates
[gigi.git] / src / org / cacert / gigi / pages / PasswordResetPage.java
index 7ba5d73c15d9599d4d3b390af2e96bf7d317519c..45abb59c8978ba1d29c5b844217cface94673124 100644 (file)
@@ -2,7 +2,6 @@ package org.cacert.gigi.pages;
 
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.io.StringWriter;
 import java.net.URLEncoder;
 import java.util.HashMap;
 import java.util.Map;
@@ -13,10 +12,9 @@ import javax.servlet.http.HttpServletResponse;
 import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.database.GigiPreparedStatement;
 import org.cacert.gigi.dbObjects.User;
-import org.cacert.gigi.email.SendMail;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.template.Form;
-import org.cacert.gigi.output.template.SprintfCommand;
+import org.cacert.gigi.output.template.MailTemplate;
 import org.cacert.gigi.output.template.Template;
 import org.cacert.gigi.util.AuthorizationContext;
 import org.cacert.gigi.util.RandomToken;
@@ -34,7 +32,7 @@ public class PasswordResetPage extends Page {
 
     public static class PasswordResetForm extends Form {
 
-        private static Template t = new Template(PasswordResetForm.class.getResource("PasswordResetForm.templ"));
+        private static final Template t = new Template(PasswordResetForm.class.getResource("PasswordResetForm.templ"));
 
         private User u;
 
@@ -114,30 +112,20 @@ public class PasswordResetPage extends Page {
         return true;
     }
 
+    private static final MailTemplate passwordResetMail = new MailTemplate(PasswordResetPage.class.getResource("PasswordResetMail.templ"));
+
     public static void initPasswordResetProcess(PrintWriter out, User targetUser, HttpServletRequest req, String aword, Language l, String method, String subject) {
         String ptok = RandomToken.generateToken(32);
         int id = targetUser.generatePasswordResetTicket(Page.getUser(req), ptok, aword);
         try {
-            StringWriter sw = new StringWriter();
-            PrintWriter outMail = new PrintWriter(sw);
-            outMail.print(l.getTranslation("Hi,") + "\n\n");
-            outMail.print(method);
-            outMail.print("\n\nhttps://");
-            outMail.print(ServerConstants.getWwwHostNamePortSecure() + PasswordResetPage.PATH);
-            outMail.print("?id=");
-            outMail.print(id);
-            outMail.print("&token=");
-            outMail.print(URLEncoder.encode(ptok, "UTF-8"));
-            outMail.print("\n");
-            outMail.print("\n");
-            SprintfCommand.createSimple("This process will expire in {0} hours.", Integer.toString(HOUR_MAX)).output(outMail, l, new HashMap<String, Object>());
-            outMail.print("\n");
-            outMail.print("\n");
-            outMail.print(l.getTranslation("Best regards"));
-            outMail.print("\n");
-            outMail.print(l.getTranslation("SomeCA.org Support!"));
-            outMail.close();
-            SendMail.getInstance().sendMail(Page.getUser(req).getEmail(), "[SomeCA.org] " + subject, sw.toString(), "support@cacert.org", null, null, null, null, false);
+            HashMap<String, Object> vars = new HashMap<>();
+            vars.put("subject", subject);
+            vars.put("method", method);
+            vars.put("link", "https://" + ServerConstants.getWwwHostNamePortSecure() + PasswordResetPage.PATH //
+                    + "?id=" + id + "&token=" + URLEncoder.encode(ptok, "UTF-8"));
+            vars.put("hour_max", HOUR_MAX);
+
+            passwordResetMail.sendMail(l, vars, Page.getUser(req).getEmail());
             out.println(Page.getLanguage(req).getTranslation("Password reset successful."));
         } catch (IOException e) {
             e.printStackTrace();