James Moger
2012-10-23 479cc28bdf743b778f9528bd0e9b997541aead53
src/com/gitblit/wicket/pages/RootSubPage.java
@@ -15,9 +15,15 @@
 */
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.GitBlit;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.models.RepositoryModel;
import com.gitblit.utils.StringUtils;
/**
@@ -45,4 +51,32 @@
      add(new Label("pageSubName", subName));
      super.setupPage("", pageName);
   }
   protected List<String> getAccessRestrictedRepositoryList(boolean includeWildcards) {
      // 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)) {
            if (includeWildcards) {
               if (lastProject == null || !lastProject.equalsIgnoreCase(repositoryModel.projectPath)) {
                  lastProject = repositoryModel.projectPath;
                  if (!StringUtils.isEmpty(repositoryModel.projectPath)) {
                     // regex for all repositories within a project
                     repos.add(repositoryModel.projectPath + "/.*");
                  }
               }
            }
            repos.add(repo);
         }
      }
      return repos;
   }
}