X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FChangeForm.java;h=ceaee92e57e3441fbc5a1b34395598c9353e5127;hp=3d2d45dbf83c91ffacf67eb028e514e2d32a5048;hb=e409ba881965634f63f0b67824bc93dda4ec4327;hpb=15284bd894484c5d692b3a84faefcf34bac89bde diff --git a/src/org/cacert/gigi/pages/account/ChangeForm.java b/src/org/cacert/gigi/pages/account/ChangeForm.java index 3d2d45db..ceaee92e 100644 --- a/src/org/cacert/gigi/pages/account/ChangeForm.java +++ b/src/org/cacert/gigi/pages/account/ChangeForm.java @@ -5,28 +5,56 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; -import org.cacert.gigi.Language; +import org.cacert.gigi.GigiApiException; +import org.cacert.gigi.dbObjects.User; +import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.Form; -import org.cacert.gigi.output.Template; +import org.cacert.gigi.output.template.Template; +import org.cacert.gigi.pages.Page; public class ChangeForm extends Form { - public ChangeForm(HttpServletRequest hsr) { - super(hsr); - } - - private static Template t; - static { - t = new Template(ChangePasswordPage.class.getResource("ChangePasswordForm.templ")); - } - - @Override - public void outputContent(PrintWriter out, Language l, Map vars) { - t.output(out, l, vars); - } - - @Override - public boolean submit(PrintWriter out, HttpServletRequest req) { - return false; - } + + private User target; + + public ChangeForm(HttpServletRequest hsr, User target) { + super(hsr); + this.target = target; + } + + private static Template t; + static { + t = new Template(ChangePasswordPage.class.getResource("ChangePasswordForm.templ")); + } + + @Override + public void outputContent(PrintWriter out, Language l, Map vars) { + t.output(out, l, vars); + } + + @Override + public boolean submit(PrintWriter out, HttpServletRequest req) { + String oldpassword = req.getParameter("oldpassword"); + String p1 = req.getParameter("pword1"); + String p2 = req.getParameter("pword2"); + GigiApiException error = new GigiApiException(); + if (oldpassword == null || p1 == null || p2 == null) { + new GigiApiException("All fields are required.").format(out, Page.getLanguage(req)); + return false; + } + if ( !p1.equals(p2)) { + new GigiApiException("New passwords do not match.").format(out, Page.getLanguage(req)); + return false; + } + try { + target.changePassword(oldpassword, p1); + } catch (GigiApiException e) { + error.mergeInto(e); + } + if ( !error.isEmpty()) { + error.format(out, Page.getLanguage(req)); + return false; + } + return true; + } }