From 8502a541a61b796a0ec6da1abdc78cc0ccf58bfe Mon Sep 17 00:00:00 2001 From: Erik Brakkee Date: Sun, 29 Sep 2013 17:33:45 +0200 Subject: [PATCH] Added edit profile page. --- .../org/wamblee/photos/wicket/BasePage.html | 2 +- .../photos/wicket/EditProfilePage.html | 23 ++++++++++ .../photos/wicket/EditProfilePage.java | 45 +++++++++++++++++++ .../org/wamblee/photos/wicket/HomePage.html | 5 ++- .../photos/wicket/WicketApplication.java | 2 + .../java/org/wamblee/photos/wicket/photos.css | 5 +++ 6 files changed, 79 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/wamblee/photos/wicket/BasePage.html b/src/main/java/org/wamblee/photos/wicket/BasePage.html index 491f6a6..18ee2e8 100644 --- a/src/main/java/org/wamblee/photos/wicket/BasePage.html +++ b/src/main/java/org/wamblee/photos/wicket/BasePage.html @@ -34,7 +34,7 @@
-
+
diff --git a/src/main/java/org/wamblee/photos/wicket/EditProfilePage.html b/src/main/java/org/wamblee/photos/wicket/EditProfilePage.html index 173e1a2..2ddfbef 100644 --- a/src/main/java/org/wamblee/photos/wicket/EditProfilePage.html +++ b/src/main/java/org/wamblee/photos/wicket/EditProfilePage.html @@ -10,6 +10,29 @@ +

Edit user profile

+ +
+ + + + + + + + + + + + + + + + + +
Current password:
New password:
Reenter new password:
+
+
diff --git a/src/main/java/org/wamblee/photos/wicket/EditProfilePage.java b/src/main/java/org/wamblee/photos/wicket/EditProfilePage.java index af53c5f..967bfa6 100644 --- a/src/main/java/org/wamblee/photos/wicket/EditProfilePage.java +++ b/src/main/java/org/wamblee/photos/wicket/EditProfilePage.java @@ -16,8 +16,14 @@ package org.wamblee.photos.wicket; import java.util.logging.Logger; +import javax.inject.Inject; import org.apache.wicket.PageParameters; +import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.markup.html.form.PasswordTextField; +import org.apache.wicket.model.Model; +import org.wamblee.security.authentication.User; +import org.wamblee.security.authentication.UserAdministration; /** * Homepage @@ -28,6 +34,16 @@ public class EditProfilePage extends BasePage { private static final long serialVersionUID = 1L; + @Inject + private User user; + + @Inject + private UserAdministration userAdmin; + + private PasswordTextField _currentPassword; + private PasswordTextField _password1; + private PasswordTextField _password2; + /** * Constructor that is invoked when page is invoked without a session. * @@ -35,5 +51,34 @@ public class EditProfilePage extends BasePage { */ public EditProfilePage(final PageParameters parameters) throws Exception { super(); + + Form form = new Form("changePasswordForm") { + @Override + protected void onSubmit() { + String current = _currentPassword.getValue(); + String pw1 = _password1.getValue(); + String pw2 = _password2.getValue(); + if (!userAdmin.checkPassword(user.getName(), current)) { + error("password invalid"); + return; + } + if (!pw1.equals(pw2)) { + error("Entered passwords differ"); + return; + } + if (userAdmin.changePassword(user.getName(), current, pw1)) { + info("Password changed successfully"); + setResponsePage(HomePage.class); + } + error("Could not change password"); + } + }; + add(form); + _currentPassword = new PasswordTextField("currentPassword", new Model("")); + _password1 = new PasswordTextField("password1", new Model("")); + _password2 = new PasswordTextField("password2", new Model("")); + form.add(_currentPassword); + form.add(_password1); + form.add(_password2); } } \ No newline at end of file diff --git a/src/main/java/org/wamblee/photos/wicket/HomePage.html b/src/main/java/org/wamblee/photos/wicket/HomePage.html index dcd6266..87f7e6b 100644 --- a/src/main/java/org/wamblee/photos/wicket/HomePage.html +++ b/src/main/java/org/wamblee/photos/wicket/HomePage.html @@ -10,8 +10,9 @@ - - Content +
+ Content +
diff --git a/src/main/java/org/wamblee/photos/wicket/WicketApplication.java b/src/main/java/org/wamblee/photos/wicket/WicketApplication.java index a1859a7..bac2877 100644 --- a/src/main/java/org/wamblee/photos/wicket/WicketApplication.java +++ b/src/main/java/org/wamblee/photos/wicket/WicketApplication.java @@ -55,6 +55,8 @@ public class WicketApplication extends WebApplication { settings.setInternalErrorPage(ErrorPage.class); mount(new MixedParamUrlCodingStrategy("view", HomePage.class, new String[]{"path"})); + mount(new MixedParamUrlCodingStrategy("editprofile", EditProfilePage.class, new String[]{})); + mount(new MixedParamUrlCodingStrategy("admin", AdminPage.class, new String[]{})); // Use the lines below to get the internal error page also when in // development mode. diff --git a/src/main/java/org/wamblee/photos/wicket/photos.css b/src/main/java/org/wamblee/photos/wicket/photos.css index df80436..a99f31b 100644 --- a/src/main/java/org/wamblee/photos/wicket/photos.css +++ b/src/main/java/org/wamblee/photos/wicket/photos.css @@ -2,6 +2,11 @@ body { font-family: sans-serif; } + +h1 { +font-size: 1.3em; +} + /* menu styling */ #menu { -- 2.31.1