From b0e164283fee6f993589cce849ba1fc7d294e89d Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 19 Oct 2012 22:47:33 -0400
Subject: [PATCH] New permissions UI for EditUser and EditTeam (issue 36)
---
src/com/gitblit/models/UserModel.java | 25 ++++++++++++++++++++++++-
1 files changed, 24 insertions(+), 1 deletions(-)
diff --git a/src/com/gitblit/models/UserModel.java b/src/com/gitblit/models/UserModel.java
index 8b3fe82..38a7aae 100644
--- a/src/com/gitblit/models/UserModel.java
+++ b/src/com/gitblit/models/UserModel.java
@@ -17,8 +17,11 @@
import java.io.Serializable;
import java.security.Principal;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -125,6 +128,21 @@
}
/**
+ * Returns a list of repository permissions for this user exclusive of
+ * permissions inherited from team memberships.
+ *
+ * @return the user's list of permissions
+ */
+ public List<RepositoryAccessPermission> getRepositoryPermissions() {
+ List<RepositoryAccessPermission> list = new ArrayList<RepositoryAccessPermission>();
+ for (Map.Entry<String, AccessPermission> entry : permissions.entrySet()) {
+ list.add(new RepositoryAccessPermission(entry.getKey(), entry.getValue()));
+ }
+ Collections.sort(list);
+ return list;
+ }
+
+ /**
* Returns true if the user has any type of specified access permission for
* this repository.
*
@@ -217,7 +235,7 @@
return permission;
}
- private boolean canAccess(RepositoryModel repository, AccessRestrictionType ifRestriction, AccessPermission requirePermission) {
+ protected boolean canAccess(RepositoryModel repository, AccessRestrictionType ifRestriction, AccessPermission requirePermission) {
if (repository.accessRestriction.atLeast(ifRestriction)) {
AccessPermission permission = getRepositoryPermission(repository);
return permission.atLeast(requirePermission);
@@ -433,4 +451,9 @@
}
return nameVerified && emailVerified;
}
+
+ public boolean hasBranchPermission(String repositoryName, String branch) {
+ // Default UserModel doesn't implement branch-level security. Other Realms (i.e. Gerrit) may override this method.
+ return hasRepositoryPermission(repositoryName);
+ }
}
--
Gitblit v1.9.1