X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FChangeForm.java;h=582fea07428f47d41ce68af5a2a985c81c2d0bbc;hp=f200c32398075482965ab19f50df5b78a2fb6755;hb=17a15662212d973d12ed4cea3f5eaa9c0d1169ed;hpb=45b1bef0919f9115f74b5b232e8fda4c787ba03d diff --git a/src/org/cacert/gigi/pages/account/ChangeForm.java b/src/org/cacert/gigi/pages/account/ChangeForm.java index f200c323..582fea07 100644 --- a/src/org/cacert/gigi/pages/account/ChangeForm.java +++ b/src/org/cacert/gigi/pages/account/ChangeForm.java @@ -1,34 +1,53 @@ package org.cacert.gigi.pages.account; -import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.Map; import javax.servlet.http.HttpServletRequest; -import org.cacert.gigi.Language; -import org.cacert.gigi.output.Form; -import org.cacert.gigi.output.Template; +import org.cacert.gigi.GigiApiException; +import org.cacert.gigi.dbObjects.User; +import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.output.template.Form; +import org.cacert.gigi.output.template.Template; public class ChangeForm extends Form { - public ChangeForm(HttpServletRequest hsr) { - super(hsr); - } - - private static Template t; - static { - t = new Template( - new InputStreamReader(ChangePasswordPage.class.getResourceAsStream("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 final Template 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(HttpServletRequest req) throws GigiApiException { + 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) { + throw new GigiApiException("All fields are required."); + } + if ( !p1.equals(p2)) { + throw new GigiApiException("New passwords do not match."); + } + try { + target.changePassword(oldpassword, p1); + } catch (GigiApiException e) { + error.mergeInto(e); + } + if ( !error.isEmpty()) { + throw error; + } + return true; + } }