From e26d9338ddc5f0f0440947e60013a57b82043783 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 30 Oct 2012 17:01:57 -0400 Subject: [PATCH] Refactor GC period into an integer for simpler translations --- src/com/gitblit/wicket/pages/RootSubPage.java | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 43 insertions(+), 0 deletions(-) diff --git a/src/com/gitblit/wicket/pages/RootSubPage.java b/src/com/gitblit/wicket/pages/RootSubPage.java index f7572b1..891c892 100644 --- a/src/com/gitblit/wicket/pages/RootSubPage.java +++ b/src/com/gitblit/wicket/pages/RootSubPage.java @@ -15,9 +15,17 @@ */ package com.gitblit.wicket.pages; +import java.util.ArrayList; +import java.util.List; + import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; +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; /** @@ -45,4 +53,39 @@ add(new Label("pageSubName", subName)); super.setupPage("", pageName); } + + protected List<String> getAccessRestrictedRepositoryList(boolean includeWildcards, UserModel user) { + // build list of access-restricted projects + String lastProject = null; + List<String> repos = new ArrayList<String>(); + if (includeWildcards) { + // all repositories + repos.add(".*"); + // 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) + && 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.toLowerCase(); + if (!StringUtils.isEmpty(repositoryModel.projectPath)) { + // regex for all repositories within a project + repos.add(repositoryModel.projectPath + "/.*"); + } + } + } + repos.add(repo.toLowerCase()); + } + } + return repos; + } } -- Gitblit v1.9.1