X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2FPasswordResetPage.java;h=45abb59c8978ba1d29c5b844217cface94673124;hp=496c0e1e7d2d9e9305c49a630dce85c453ee06c5;hb=f0409c63fad3833d4a2d4d8c3fd60f0ab829b299;hpb=aa5723dbb64ec8efa63909d39ff72364f0a5ee96 diff --git a/src/org/cacert/gigi/pages/PasswordResetPage.java b/src/org/cacert/gigi/pages/PasswordResetPage.java index 496c0e1e..45abb59c 100644 --- a/src/org/cacert/gigi/pages/PasswordResetPage.java +++ b/src/org/cacert/gigi/pages/PasswordResetPage.java @@ -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()); - 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 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();