From 20165d234037cb62640e4d9a3fe285260a6a2444 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 20 Jul 2011 16:01:58 -0400
Subject: [PATCH] Change password feature (issue 1)

---
 src/com/gitblit/wicket/pages/EditUserPage.java |   24 +++++++++++-------------
 1 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/EditUserPage.java b/src/com/gitblit/wicket/pages/EditUserPage.java
index 1127ffb..4ba892f 100644
--- a/src/com/gitblit/wicket/pages/EditUserPage.java
+++ b/src/com/gitblit/wicket/pages/EditUserPage.java
@@ -31,21 +31,18 @@
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.util.CollectionModel;
 import org.apache.wicket.model.util.ListModel;
-import org.eclipse.jetty.http.security.Credential.Crypt;
-import org.eclipse.jetty.http.security.Credential.MD5;
 
 import com.gitblit.Constants.AccessRestrictionType;
 import com.gitblit.GitBlit;
 import com.gitblit.GitBlitException;
 import com.gitblit.Keys;
+import com.gitblit.models.RepositoryModel;
+import com.gitblit.models.UserModel;
 import com.gitblit.utils.StringUtils;
-import com.gitblit.wicket.AdminPage;
-import com.gitblit.wicket.BasePage;
+import com.gitblit.wicket.RequiresAdminRole;
 import com.gitblit.wicket.WicketUtils;
-import com.gitblit.wicket.models.RepositoryModel;
-import com.gitblit.wicket.models.UserModel;
 
-@AdminPage
+@RequiresAdminRole
 public class EditUserPage extends BasePage {
 
 	private final boolean isCreate;
@@ -115,8 +112,7 @@
 					return;
 				}
 				String password = userModel.password;
-				if (!password.toUpperCase().startsWith(Crypt.__TYPE)
-						&& !password.toUpperCase().startsWith(MD5.__TYPE)) {
+				if (!password.toUpperCase().startsWith(StringUtils.MD5_TYPE)) {
 					// This is a plain text password.
 					// Check length.
 					int minLength = GitBlit.getInteger(Keys.realm.minPasswordLength, 5);
@@ -134,18 +130,20 @@
 					String type = GitBlit.getString(Keys.realm.passwordStorage, "md5");
 					if (type.equalsIgnoreCase("md5")) {
 						// store MD5 digest of password
-						userModel.password = MD5.digest(userModel.password);
+						userModel.password = StringUtils.MD5_TYPE
+								+ StringUtils.getMD5(userModel.password);
 					}
 				}
 
 				Iterator<String> selectedRepositories = repositories.getSelectedChoices();
 				List<String> repos = new ArrayList<String>();
 				while (selectedRepositories.hasNext()) {
-					repos.add(selectedRepositories.next());
+					repos.add(selectedRepositories.next().toLowerCase());
 				}
-				userModel.setRepositories(repos);
+				userModel.repositories.clear();
+				userModel.repositories.addAll(repos);
 				try {
-					GitBlit.self().editUserModel(oldName, userModel, isCreate);
+					GitBlit.self().updateUserModel(oldName, userModel, isCreate);
 				} catch (GitBlitException e) {
 					error(e.getMessage());
 					return;

--
Gitblit v1.9.1