From cb285cbfddfc0b633d6b8cdb4dc0d2bd2b8b51ef Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 05 Jan 2012 17:34:05 -0500
Subject: [PATCH] Fixed bug in receive hook for repositories in subfolders

---
 src/com/gitblit/ConfigUserService.java |   42 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 36 insertions(+), 6 deletions(-)

diff --git a/src/com/gitblit/ConfigUserService.java b/src/com/gitblit/ConfigUserService.java
index 7e4600c..5ba49ae 100644
--- a/src/com/gitblit/ConfigUserService.java
+++ b/src/com/gitblit/ConfigUserService.java
@@ -35,6 +35,7 @@
 
 import com.gitblit.models.TeamModel;
 import com.gitblit.models.UserModel;
+import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.DeepCopier;
 import com.gitblit.utils.StringUtils;
 
@@ -313,6 +314,21 @@
 	}
 
 	/**
+	 * Returns the list of all teams available to the login service.
+	 * 
+	 * @return list of all teams
+	 * @since 0.8.0
+	 */
+	@Override
+	public List<TeamModel> getAllTeams() {
+		read();
+		List<TeamModel> list = new ArrayList<TeamModel>(teams.values());
+		list = DeepCopier.copy(list);
+		Collections.sort(list);
+		return list;
+	}
+
+	/**
 	 * Returns the list of all users who are allowed to bypass the access
 	 * restriction placed on the specified repository.
 	 * 
@@ -478,6 +494,20 @@
 		Collections.sort(list);
 		return list;
 	}
+	
+	/**
+	 * Returns the list of all users available to the login service.
+	 * 
+	 * @return list of all usernames
+	 */
+	@Override
+	public List<UserModel> getAllUsers() {
+		read();
+		List<UserModel> list = new ArrayList<UserModel>(users.values());
+		list = DeepCopier.copy(list);
+		Collections.sort(list);
+		return list;
+	}	
 
 	/**
 	 * Returns the list of all users who are allowed to bypass the access
@@ -639,7 +669,7 @@
 			// repository memberships
 			// null check on "final" repositories because JSON-sourced UserModel
 			// can have a null repositories object
-			if (model.repositories != null) {
+			if (!ArrayUtils.isEmpty(model.repositories)) {
 				config.setStringList(USER, model.username, REPOSITORY, new ArrayList<String>(
 						model.repositories));
 			}
@@ -649,33 +679,33 @@
 		for (TeamModel model : teams.values()) {
 			// null check on "final" repositories because JSON-sourced TeamModel
 			// can have a null repositories object
-			if (model.repositories != null) {
+			if (!ArrayUtils.isEmpty(model.repositories)) {
 				config.setStringList(TEAM, model.name, REPOSITORY, new ArrayList<String>(
 						model.repositories));
 			}
 
 			// null check on "final" users because JSON-sourced TeamModel
 			// can have a null users object
-			if (model.users != null) {
+			if (!ArrayUtils.isEmpty(model.users)) {
 				config.setStringList(TEAM, model.name, USER, new ArrayList<String>(model.users));
 			}
 
 			// null check on "final" mailing lists because JSON-sourced
 			// TeamModel can have a null users object
-			if (model.mailingLists != null) {
+			if (!ArrayUtils.isEmpty(model.mailingLists)) {
 				config.setStringList(TEAM, model.name, MAILINGLIST, new ArrayList<String>(
 						model.mailingLists));
 			}
 
 			// null check on "final" preReceiveScripts because JSON-sourced
 			// TeamModel can have a null preReceiveScripts object
-			if (model.preReceiveScripts != null) {
+			if (!ArrayUtils.isEmpty(model.preReceiveScripts)) {
 				config.setStringList(TEAM, model.name, PRERECEIVE, model.preReceiveScripts);
 			}
 
 			// null check on "final" postReceiveScripts because JSON-sourced
 			// TeamModel can have a null postReceiveScripts object
-			if (model.postReceiveScripts != null) {
+			if (!ArrayUtils.isEmpty(model.postReceiveScripts)) {
 				config.setStringList(TEAM, model.name, POSTRECEIVE, model.postReceiveScripts);
 			}
 		}

--
Gitblit v1.9.1