From 3e063a21bec94ccb33b86a8e75ac4fbfa4b3f868 Mon Sep 17 00:00:00 2001 From: Rafael Cavazin <rafaelcavazin@gmail.com> Date: Thu, 06 Dec 2012 15:07:55 -0500 Subject: [PATCH] Some language adaptions on pt-br properties --- src/com/gitblit/models/TeamModel.java | 54 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 43 insertions(+), 11 deletions(-) diff --git a/src/com/gitblit/models/TeamModel.java b/src/com/gitblit/models/TeamModel.java index 6410eb4..9587ca7 100644 --- a/src/com/gitblit/models/TeamModel.java +++ b/src/com/gitblit/models/TeamModel.java @@ -19,14 +19,15 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; import com.gitblit.Constants.AccessPermission; import com.gitblit.Constants.AccessRestrictionType; +import com.gitblit.Constants.PermissionType; import com.gitblit.Constants.RegistrantType; import com.gitblit.Constants.Unused; import com.gitblit.utils.StringUtils; @@ -51,7 +52,7 @@ // retained for backwards-compatibility with RPC clients @Deprecated public final Set<String> repositories = new HashSet<String>(); - public final Map<String, AccessPermission> permissions = new HashMap<String, AccessPermission>(); + public final Map<String, AccessPermission> permissions = new LinkedHashMap<String, AccessPermission>(); public final Set<String> mailingLists = new HashSet<String>(); public final List<String> preReceiveScripts = new ArrayList<String>(); public final List<String> postReceiveScripts = new ArrayList<String>(); @@ -97,8 +98,21 @@ */ public List<RegistrantAccessPermission> getRepositoryPermissions() { List<RegistrantAccessPermission> list = new ArrayList<RegistrantAccessPermission>(); + if (canAdmin) { + // team has REWIND access to all repositories + return list; + } for (Map.Entry<String, AccessPermission> entry : permissions.entrySet()) { - list.add(new RegistrantAccessPermission(entry.getKey(), entry.getValue(), true, RegistrantType.REPOSITORY)); + String registrant = entry.getKey(); + String source = null; + boolean editable = true; + PermissionType pType = PermissionType.EXPLICIT; + if (StringUtils.findInvalidCharacter(registrant) != null) { + // a regex will have at least 1 invalid character + pType = PermissionType.REGEX; + source = registrant; + } + list.add(new RegistrantAccessPermission(registrant, entry.getValue(), pType, RegistrantType.REPOSITORY, source, editable)); } Collections.sort(list); return list; @@ -176,13 +190,27 @@ repositories.add(repository.toLowerCase()); } - public AccessPermission getRepositoryPermission(RepositoryModel repository) { - AccessPermission permission = AccessPermission.NONE; + public RegistrantAccessPermission getRepositoryPermission(RepositoryModel repository) { + RegistrantAccessPermission ap = new RegistrantAccessPermission(); + ap.registrant = name; + ap.registrantType = RegistrantType.TEAM; + ap.permission = AccessPermission.NONE; + ap.mutable = false; + + if (canAdmin) { + ap.permissionType = PermissionType.ADMINISTRATOR; + ap.permission = AccessPermission.REWIND; + return ap; + } + if (permissions.containsKey(repository.name.toLowerCase())) { // exact repository permission specified AccessPermission p = permissions.get(repository.name.toLowerCase()); if (p != null) { - permission = p; + ap.permissionType = PermissionType.EXPLICIT; + ap.permission = p; + ap.mutable = true; + return ap; } } else { // search for case-insensitive regex permission match @@ -190,18 +218,22 @@ if (StringUtils.matchesIgnoreCase(repository.name, key)) { AccessPermission p = permissions.get(key); if (p != null) { - permission = p; + // take first match + ap.permissionType = PermissionType.REGEX; + ap.permission = p; + ap.source = key; + return ap; } } } } - return permission; + return ap; } - 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); + RegistrantAccessPermission ap = getRepositoryPermission(repository); + return ap.permission.atLeast(requirePermission); } return true; } -- Gitblit v1.9.1