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/FileUserService.java | 81 ++++++++++++++++++++++++++++++---------- 1 files changed, 61 insertions(+), 20 deletions(-) diff --git a/src/com/gitblit/FileUserService.java b/src/com/gitblit/FileUserService.java index 88c7d79..37ca9a7 100644 --- a/src/com/gitblit/FileUserService.java +++ b/src/com/gitblit/FileUserService.java @@ -33,6 +33,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; @@ -334,6 +335,22 @@ continue; } list.add(user); + } + 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>(); + for (String username : getAllUsernames()) { + list.add(getUserModel(username)); } Collections.sort(list); return list; @@ -670,6 +687,20 @@ } /** + * 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() { + List<TeamModel> list = new ArrayList<TeamModel>(teams.values()); + list = DeepCopier.copy(list); + Collections.sort(list); + return list; + } + + /** * Returns the list of all teams who are allowed to bypass the access * restriction placed on the specified repository. * @@ -757,7 +788,7 @@ // remove role from team for (String name : needsRemoveRole) { String team = "@" + name; - String[] values = allUsers.getProperty(team).split(","); + String[] values = allUsers.getProperty(team).split(","); StringBuilder sb = new StringBuilder(); for (int i = 0; i < values.length; i++) { String value = values[i]; @@ -838,29 +869,39 @@ private void updateTeamCache(Properties allUsers, String teamname, TeamModel model) { StringBuilder sb = new StringBuilder(); - for (String repository : model.repositories) { - sb.append(repository); - sb.append(','); + if (!ArrayUtils.isEmpty(model.repositories)) { + for (String repository : model.repositories) { + sb.append(repository); + sb.append(','); + } } - for (String user : model.users) { - sb.append('!'); - sb.append(user); - sb.append(','); + if (!ArrayUtils.isEmpty(model.users)) { + for (String user : model.users) { + sb.append('!'); + sb.append(user); + sb.append(','); + } } - for (String address : model.mailingLists) { - sb.append('&'); - sb.append(address); - sb.append(','); + if (!ArrayUtils.isEmpty(model.mailingLists)) { + for (String address : model.mailingLists) { + sb.append('&'); + sb.append(address); + sb.append(','); + } } - for (String script : model.preReceiveScripts) { - sb.append('^'); - sb.append(script); - sb.append(','); + if (!ArrayUtils.isEmpty(model.preReceiveScripts)) { + for (String script : model.preReceiveScripts) { + sb.append('^'); + sb.append(script); + sb.append(','); + } } - for (String script : model.postReceiveScripts) { - sb.append('%'); - sb.append(script); - sb.append(','); + if (!ArrayUtils.isEmpty(model.postReceiveScripts)) { + for (String script : model.postReceiveScripts) { + sb.append('%'); + sb.append(script); + sb.append(','); + } } // trim trailing comma sb.setLength(sb.length() - 1); -- Gitblit v1.9.1