From 2711bc82a373a3c2e357b5948e2a6e0c477d8534 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 22 Oct 2012 16:23:53 -0400 Subject: [PATCH] Fixed bug where owner could not edit a repository through web ui --- src/com/gitblit/models/UserModel.java | 23 +++++++++++++++++------ 1 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/com/gitblit/models/UserModel.java b/src/com/gitblit/models/UserModel.java index 7995f7e..6cc0778 100644 --- a/src/com/gitblit/models/UserModel.java +++ b/src/com/gitblit/models/UserModel.java @@ -137,7 +137,7 @@ public List<RegistrantAccessPermission> getRepositoryPermissions() { List<RegistrantAccessPermission> list = new ArrayList<RegistrantAccessPermission>(); for (Map.Entry<String, AccessPermission> entry : permissions.entrySet()) { - list.add(new RegistrantAccessPermission(entry.getKey(), entry.getValue(), RegistrantType.REPOSITORY)); + list.add(new RegistrantAccessPermission(entry.getKey(), entry.getValue(), true, RegistrantType.REPOSITORY)); } Collections.sort(list); return list; @@ -167,6 +167,18 @@ } } return false; + } + + /** + * Returns true if the user has an explicitly specified access permission for + * this repository. + * + * @param name + * @return if the user has an explicitly specified access permission + */ + public boolean hasExplicitRepositoryPermission(String name) { + String repository = AccessPermission.repositoryFromRole(name).toLowerCase(); + return permissions.containsKey(repository); } /** @@ -215,9 +227,9 @@ return p; } } else { - // search for regex permission match + // search for case-insensitive regex permission match for (String key : permissions.keySet()) { - if (repository.name.matches(key)) { + if (StringUtils.matchesIgnoreCase(repository.name, key)) { AccessPermission p = permissions.get(key); if (p != null) { permission = p; @@ -366,13 +378,12 @@ } /** - * Returns true if the user is allowed to create the specified repository - * on-push if the repository does not already exist. + * Returns true if the user is allowed to create the specified repository. * * @param repository * @return true if the user can create the repository */ - public boolean canCreateOnPush(String repository) { + public boolean canCreate(String repository) { if (canAdmin()) { // admins can create any repository return true; -- Gitblit v1.9.1