From 6fdbc6b5bdb805d1faefe3f26105d5adfa37d5a1 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 28 Mar 2012 12:03:19 -0400
Subject: [PATCH] Merge pull request #9 from mohamedmansour/master

---
 src/com/gitblit/wicket/pages/ChangePasswordPage.java |   22 ++++++++++++++--------
 1 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/ChangePasswordPage.java b/src/com/gitblit/wicket/pages/ChangePasswordPage.java
index 660a813..5e15c8f 100644
--- a/src/com/gitblit/wicket/pages/ChangePasswordPage.java
+++ b/src/com/gitblit/wicket/pages/ChangePasswordPage.java
@@ -32,7 +32,7 @@
 import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.GitBlitWebSession;
 
-public class ChangePasswordPage extends StandardPage {
+public class ChangePasswordPage extends RootSubPage {
 
 	IModel<String> password = new Model<String>("");
 	IModel<String> confirmPassword = new Model<String>("");
@@ -62,7 +62,7 @@
 				String confirmPassword = ChangePasswordPage.this.confirmPassword.getObject();
 				// ensure passwords match
 				if (!password.equals(confirmPassword)) {
-					error("Passwords do not match!");
+					error(getString("gb.passwordsDoNotMatch"));
 					return;
 				}
 
@@ -72,19 +72,23 @@
 					minLength = 4;
 				}
 				if (password.length() < minLength) {
-					error(MessageFormat.format(
-							"Password is too short. Minimum length is {0} characters.", minLength));
+					error(MessageFormat.format(getString("gb.passwordTooShort"), minLength));
 					return;
 				}
+
+				UserModel user = GitBlitWebSession.get().getUser();
 
 				// convert to MD5 digest, if appropriate
 				String type = GitBlit.getString(Keys.realm.passwordStorage, "md5");
 				if (type.equalsIgnoreCase("md5")) {
 					// store MD5 digest of password
 					password = StringUtils.MD5_TYPE + StringUtils.getMD5(password);
+				} else if (type.equalsIgnoreCase("combined-md5")) {
+					// store MD5 digest of username+password
+					password = StringUtils.COMBINED_MD5_TYPE
+							+ StringUtils.getMD5(user.username.toLowerCase() + password);
 				}
 
-				UserModel user = GitBlitWebSession.get().getUser();
 				user.password = password;
 				try {
 					GitBlit.self().updateUserModel(user.username, user, false);
@@ -97,7 +101,7 @@
 					return;
 				}
 				setRedirect(false);
-				info("Password successfully changed.");
+				info(getString("gb.passwordChanged"));
 				setResponsePage(RepositoriesPage.class);
 			}
 		};
@@ -109,12 +113,14 @@
 		confirmPasswordField.setResetPassword(false);
 		form.add(confirmPasswordField);
 
-		form.add(new Button("save"));
-		Button cancel = new Button("cancel") {
+		form.add(new Button(getString("gb.save")));
+		Button cancel = new Button(getString("gb.cancel")) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
 			public void onSubmit() {
+				setRedirect(false);
+				error(getString("gb.passwordChangeAborted"));
 				setResponsePage(RepositoriesPage.class);
 			}
 		};

--
Gitblit v1.9.1