X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2FPasswordResetPage.java;h=580d0e54235da0c4e0305200f853fd1800ba86be;hp=4090bdd49b140822e7d516a879acdf0c6f9df9e1;hb=abff88a2bf173198fe55c35ead97c9c7cdb5924c;hpb=d36495e60d6ae43dadcedd6a538f399dc09d80ef diff --git a/src/org/cacert/gigi/pages/PasswordResetPage.java b/src/org/cacert/gigi/pages/PasswordResetPage.java index 4090bdd4..580d0e54 100644 --- a/src/org/cacert/gigi/pages/PasswordResetPage.java +++ b/src/org/cacert/gigi/pages/PasswordResetPage.java @@ -16,8 +16,8 @@ import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.template.Form; import org.cacert.gigi.output.template.MailTemplate; import org.cacert.gigi.output.template.Template; +import org.cacert.gigi.output.template.TranslateCommand; import org.cacert.gigi.util.AuthorizationContext; -import org.cacert.gigi.util.HTMLEncoder; import org.cacert.gigi.util.RandomToken; import org.cacert.gigi.util.ServerConstants; @@ -59,7 +59,7 @@ public class PasswordResetPage extends Page { } @Override - public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException { + public SuccessMessageResult submit(HttpServletRequest req) throws GigiApiException { try (GigiPreparedStatement passwordReset = new GigiPreparedStatement("UPDATE `passwordResetTickets` SET `used` = CURRENT_TIMESTAMP WHERE `used` IS NULL AND `created` < CURRENT_TIMESTAMP - interval '1 hours' * ?;")) { passwordReset.setInt(1, HOUR_MAX); passwordReset.execute(); @@ -75,26 +75,26 @@ public class PasswordResetPage extends Page { throw new GigiApiException("New passwords differ."); } u.consumePasswordResetTicket(id, tok, p1); - return true; + return new SuccessMessageResult(new TranslateCommand("Password reset successful.")); } @Override protected void outputContent(PrintWriter out, Language l, Map vars) { - t.output(out, l, vars); } } + @Override + public boolean beforePost(HttpServletRequest req, HttpServletResponse resp) throws IOException { + return Form.getForm(req, PasswordResetForm.class).submitExceptionProtected(req, resp); + } + @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { - PasswordResetForm form = Form.getForm(req, PasswordResetForm.class); - PrintWriter w = resp.getWriter(); - if (form.submitProtected(w, req)) { - w.println("
"); - w.println(HTMLEncoder.encodeHTML(getLanguage(req).getTranslation("Password reset successful."))); - w.println("
"); - return; + if (Form.printFormErrors(req, resp.getWriter())) { + PasswordResetForm form = Form.getForm(req, PasswordResetForm.class); + form.output(resp.getWriter(), getLanguage(req), new HashMap()); } } @@ -114,7 +114,7 @@ public class PasswordResetPage extends Page { 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) { + public static void initPasswordResetProcess(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 { @@ -126,7 +126,6 @@ public class PasswordResetPage extends Page { 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(); }