From a5e762ba4ab82f0c6ef71d853c5103f19bbf8e22 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 11 Oct 2012 08:10:20 -0400 Subject: [PATCH] Tweak canFork description --- src/com/gitblit/models/TeamModel.java | 30 +++++++++++++++++++++++++++++- 1 files changed, 29 insertions(+), 1 deletions(-) diff --git a/src/com/gitblit/models/TeamModel.java b/src/com/gitblit/models/TeamModel.java index d185b9d..149c765 100644 --- a/src/com/gitblit/models/TeamModel.java +++ b/src/com/gitblit/models/TeamModel.java @@ -41,6 +41,9 @@ // field names are reflectively mapped in EditTeam page public String name; + public boolean canAdmin; + public boolean canFork; + public boolean canCreate; public final Set<String> users = new HashSet<String>(); // retained for backwards-compatibility with RPC clients @Deprecated @@ -92,7 +95,21 @@ */ public boolean hasRepositoryPermission(String name) { String repository = AccessPermission.repositoryFromRole(name).toLowerCase(); - return permissions.containsKey(repository) || repositories.contains(repository); + if (permissions.containsKey(repository)) { + // exact repository permission specified + return true; + } else { + // search for regex permission match + for (String key : permissions.keySet()) { + if (name.matches(key)) { + AccessPermission p = permissions.get(key); + if (p != null) { + return true; + } + } + } + } + return false; } /** @@ -132,10 +149,21 @@ public AccessPermission getRepositoryPermission(RepositoryModel repository) { AccessPermission permission = AccessPermission.NONE; if (permissions.containsKey(repository.name.toLowerCase())) { + // exact repository permission specified AccessPermission p = permissions.get(repository.name.toLowerCase()); if (p != null) { permission = p; } + } else { + // search for regex permission match + for (String key : permissions.keySet()) { + if (repository.name.matches(key)) { + AccessPermission p = permissions.get(key); + if (p != null) { + permission = p; + } + } + } } return permission; } -- Gitblit v1.9.1