From 092f0a62302e87f44403ba24fc519c65534dbfff Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 29 Oct 2012 23:22:54 -0400 Subject: [PATCH] Stabilizing and polishing permissions ui. Still in-progress. --- src/com/gitblit/wicket/pages/RootSubPage.java | 19 ++++++++++++++----- 1 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/com/gitblit/wicket/pages/RootSubPage.java b/src/com/gitblit/wicket/pages/RootSubPage.java index 30d296e..891c892 100644 --- a/src/com/gitblit/wicket/pages/RootSubPage.java +++ b/src/com/gitblit/wicket/pages/RootSubPage.java @@ -21,9 +21,11 @@ import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; -import com.gitblit.GitBlit; import com.gitblit.Constants.AccessRestrictionType; +import com.gitblit.Constants.AuthorizationControl; +import com.gitblit.GitBlit; import com.gitblit.models.RepositoryModel; +import com.gitblit.models.UserModel; import com.gitblit.utils.StringUtils; /** @@ -52,7 +54,7 @@ super.setupPage("", pageName); } - protected List<String> getAccessRestrictedRepositoryList(boolean includeWildcards) { + protected List<String> getAccessRestrictedRepositoryList(boolean includeWildcards, UserModel user) { // build list of access-restricted projects String lastProject = null; List<String> repos = new ArrayList<String>(); @@ -62,19 +64,26 @@ // all repositories excluding personal repositories repos.add("[^~].*"); } + for (String repo : GitBlit.self().getRepositoryList()) { RepositoryModel repositoryModel = GitBlit.self().getRepositoryModel(repo); - if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE)) { + if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE) + && repositoryModel.authorizationControl.equals(AuthorizationControl.NAMED)) { + if (user != null && + (repositoryModel.isOwner(user.username) || repositoryModel.isUsersPersonalRepository(user.username))) { + // exclude Owner or personal repositories + continue; + } if (includeWildcards) { if (lastProject == null || !lastProject.equalsIgnoreCase(repositoryModel.projectPath)) { - lastProject = repositoryModel.projectPath; + lastProject = repositoryModel.projectPath.toLowerCase(); if (!StringUtils.isEmpty(repositoryModel.projectPath)) { // regex for all repositories within a project repos.add(repositoryModel.projectPath + "/.*"); } } } - repos.add(repo); + repos.add(repo.toLowerCase()); } } return repos; -- Gitblit v1.9.1