summaryrefslogtreecommitdiffstats
path: root/src/com/gitblit/wicket/pages/RootSubPage.java
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2012-10-29 23:22:54 -0400
committerJames Moger <james.moger@gitblit.com>2012-10-29 23:22:54 -0400
commit092f0a62302e87f44403ba24fc519c65534dbfff (patch)
tree340b5c18c29c1662d790fbf0d4422702c92eb3ce /src/com/gitblit/wicket/pages/RootSubPage.java
parent8bc725871269aa47f8ef6db086a4cfedc75ef140 (diff)
downloadgitblit-092f0a62302e87f44403ba24fc519c65534dbfff.tar.gz
gitblit-092f0a62302e87f44403ba24fc519c65534dbfff.zip
Stabilizing and polishing permissions ui. Still in-progress.
Diffstat (limited to 'src/com/gitblit/wicket/pages/RootSubPage.java')
-rw-r--r--src/com/gitblit/wicket/pages/RootSubPage.java19
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 30d296ed..891c892a 100644
--- a/src/com/gitblit/wicket/pages/RootSubPage.java
+++ b/src/com/gitblit/wicket/pages/RootSubPage.java
@@ -21,9 +21,11 @@ import java.util.List;
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 @@ public abstract class RootSubPage extends RootPage {
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 @@ public abstract class RootSubPage extends RootPage {
// 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;