From 22b181154c11cb250a2f7ad9eb7820a462cf3079 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 01 Oct 2012 22:29:42 -0400
Subject: [PATCH] Method to generate fork network graph

---
 src/com/gitblit/ConfigUserService.java |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/com/gitblit/ConfigUserService.java b/src/com/gitblit/ConfigUserService.java
index 959c1bc..f526835 100644
--- a/src/com/gitblit/ConfigUserService.java
+++ b/src/com/gitblit/ConfigUserService.java
@@ -315,7 +315,10 @@
 		} catch (Throwable t) {
 			if (originalUser != null) {
 				// restore original user
-				users.put(originalUser.username, originalUser);
+				users.put(originalUser.username.toLowerCase(), originalUser);
+			} else {
+				// drop attempted add
+				users.remove(model.username.toLowerCase());
 			}
 			logger.error(MessageFormat.format("Failed to update user model {0}!", model.username),
 					t);
@@ -514,7 +517,10 @@
 		} catch (Throwable t) {
 			if (original != null) {
 				// restore original team
-				teams.put(original.name, original);
+				teams.put(original.name.toLowerCase(), original);
+			} else {
+				// drop attempted add
+				teams.remove(model.name.toLowerCase());
 			}
 			logger.error(MessageFormat.format("Failed to update team model {0}!", model.name), t);
 		}
@@ -744,6 +750,9 @@
 			if (model.canAdmin) {
 				roles.add(Constants.ADMIN_ROLE);
 			}
+			if (model.canFork) {
+				roles.add(Constants.FORK_ROLE);
+			}
 			if (model.excludeFromFederation) {
 				roles.add(Constants.NOT_FEDERATED_ROLE);
 			}
@@ -852,6 +861,7 @@
 					Set<String> roles = new HashSet<String>(Arrays.asList(config.getStringList(
 							USER, username, ROLE)));
 					user.canAdmin = roles.contains(Constants.ADMIN_ROLE);
+					user.canFork = roles.contains(Constants.FORK_ROLE);
 					user.excludeFromFederation = roles.contains(Constants.NOT_FEDERATED_ROLE);
 
 					// repository memberships

--
Gitblit v1.9.1