From 139c6da46a9f8beb151d502d3eae555f03ed3302 Mon Sep 17 00:00:00 2001 From: James Moger Date: Sat, 13 Jul 2013 12:19:02 -0400 Subject: [PATCH] Setting a null permission now removes the permission from the user or team (issue-259) --- releases.moxie | 1 + src/main/java/com/gitblit/models/TeamModel.java | 11 +++++++++-- src/main/java/com/gitblit/models/UserModel.java | 8 +++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/releases.moxie b/releases.moxie index 811cd85c..85419d67 100644 --- a/releases.moxie +++ b/releases.moxie @@ -49,6 +49,7 @@ r17: { - Improve NPE handling for hook script enumeration (issue-253) - Workaround missing commit information in blame page (JGit bug 374382, issue-254) - Ignore orphan ".git" folder in the repositories root folder (issue-256) + - Fixed bug where a null permission was added to a user model on a repository rename when the permission had really been inherited from a team membership (issue-259) - Fixed committer verification with merge commits (issue-264) - Could not reset settings with $ or { characters through Gitblit Manager because they are not properly escaped - Added more error checking to blob page and blame page diff --git a/src/main/java/com/gitblit/models/TeamModel.java b/src/main/java/com/gitblit/models/TeamModel.java index e0499f7c..dfbd45d4 100644 --- a/src/main/java/com/gitblit/models/TeamModel.java +++ b/src/main/java/com/gitblit/models/TeamModel.java @@ -186,8 +186,15 @@ public class TeamModel implements Serializable, Comparable { } public void setRepositoryPermission(String repository, AccessPermission permission) { - permissions.put(repository.toLowerCase(), permission); - repositories.add(repository.toLowerCase()); + if (permission == null) { + // remove the permission + permissions.remove(repository.toLowerCase()); + repositories.remove(repository.toLowerCase()); + } else { + // set the new permission + permissions.put(repository.toLowerCase(), permission); + repositories.add(repository.toLowerCase()); + } } public RegistrantAccessPermission getRepositoryPermission(RepositoryModel repository) { diff --git a/src/main/java/com/gitblit/models/UserModel.java b/src/main/java/com/gitblit/models/UserModel.java index b480b885..6d585127 100644 --- a/src/main/java/com/gitblit/models/UserModel.java +++ b/src/main/java/com/gitblit/models/UserModel.java @@ -273,7 +273,13 @@ public class UserModel implements Principal, Serializable, Comparable } public void setRepositoryPermission(String repository, AccessPermission permission) { - permissions.put(repository.toLowerCase(), permission); + if (permission == null) { + // remove the permission + permissions.remove(repository.toLowerCase()); + } else { + // set the new permission + permissions.put(repository.toLowerCase(), permission); + } } public RegistrantAccessPermission getRepositoryPermission(RepositoryModel repository) { -- 2.39.5