From 16038ce2adf5f06f75230150f75d110a804414c1 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Sat, 22 Oct 2011 09:48:17 -0400
Subject: [PATCH] Fixed collision error on rename repository or user

---
 src/com/gitblit/client/EditUserDialog.java |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/com/gitblit/client/EditUserDialog.java b/src/com/gitblit/client/EditUserDialog.java
index 988f8fb..c77713a 100644
--- a/src/com/gitblit/client/EditUserDialog.java
+++ b/src/com/gitblit/client/EditUserDialog.java
@@ -55,6 +55,8 @@
 
 	private static final long serialVersionUID = 1L;
 
+	private final String username;
+
 	private final UserModel user;
 
 	private final ServerSettings settings;
@@ -85,6 +87,7 @@
 
 	public EditUserDialog(UserModel anUser, ServerSettings settings) {
 		super();
+		this.username = anUser.username;
 		this.user = new UserModel("");
 		this.settings = settings;
 		this.usernames = new HashSet<String>();
@@ -194,6 +197,16 @@
 				error(MessageFormat.format("Username ''{0}'' is unavailable.", uname));
 				return false;
 			}
+		} else {
+			// check rename collision
+			if (!username.equalsIgnoreCase(uname)) {
+				if (usernames.contains(uname.toLowerCase())) {
+					error(MessageFormat.format(
+							"Failed to rename ''{0}'' because ''{1}'' already exists.", username,
+							uname));
+					return false;
+				}
+			}
 		}
 
 		int minLength = settings.get(Keys.realm.minPasswordLength).getInteger(5);

--
Gitblit v1.9.1