From 139c6da46a9f8beb151d502d3eae555f03ed3302 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
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)
---
src/main/java/com/gitblit/models/UserModel.java | 8 +++++++-
src/main/java/com/gitblit/models/TeamModel.java | 11 +++++++++--
releases.moxie | 1 +
3 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/releases.moxie b/releases.moxie
index 811cd85..85419d6 100644
--- a/releases.moxie
+++ b/releases.moxie
@@ -49,6 +49,7 @@
- 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 e0499f7..dfbd45d 100644
--- a/src/main/java/com/gitblit/models/TeamModel.java
+++ b/src/main/java/com/gitblit/models/TeamModel.java
@@ -186,8 +186,15 @@
}
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 b480b88..6d58512 100644
--- a/src/main/java/com/gitblit/models/UserModel.java
+++ b/src/main/java/com/gitblit/models/UserModel.java
@@ -273,7 +273,13 @@
}
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) {
--
Gitblit v1.9.1