James Moger
2012-10-23 479cc28bdf743b778f9528bd0e9b997541aead53
Add some common regex filters to the repository lists
5 files modified
109 ■■■■ changed files
src/com/gitblit/client/EditTeamDialog.java 27 ●●●● patch | view | raw | blame | history
src/com/gitblit/client/EditUserDialog.java 25 ●●●● patch | view | raw | blame | history
src/com/gitblit/wicket/pages/EditTeamPage.java 11 ●●●●● patch | view | raw | blame | history
src/com/gitblit/wicket/pages/EditUserPage.java 12 ●●●● patch | view | raw | blame | history
src/com/gitblit/wicket/pages/RootSubPage.java 34 ●●●●● patch | view | raw | blame | history
src/com/gitblit/client/EditTeamDialog.java
@@ -315,18 +315,35 @@
                restricted.add(repo.name);
            }
        }
        StringUtils.sortRepositorynames(restricted);
        
        // remove repositories for which team already has a permission
        List<String> list = new ArrayList<String>();
        // repositories
        list.add(".*");
        // all repositories excluding personal repositories
        list.add("[^~].*");
        String lastProject = null;
        for (String repo : restricted) {
            String projectPath = StringUtils.getFirstPathElement(repo);
            if (lastProject == null || !lastProject.equalsIgnoreCase(projectPath)) {
                lastProject = projectPath;
                if (!StringUtils.isEmpty(projectPath)) {
                    // regex for all repositories within a project
                    list.add(projectPath + "/.*");
                }
                list.add(repo);
            }
        }
        // remove repositories for which user already has a permission
        if (permissions == null) {
            permissions = new ArrayList<RegistrantAccessPermission>();
        } else {
            for (RegistrantAccessPermission rp : permissions) {
                restricted.remove(rp.registrant);
                list.remove(rp.registrant);
            }
        }
        StringUtils.sortRepositorynames(restricted);
        repositoryPalette.setObjects(restricted, permissions);
        repositoryPalette.setObjects(list, permissions);
    }
    public void setUsers(List<String> users, List<String> selected) {
src/com/gitblit/client/EditUserDialog.java
@@ -347,18 +347,35 @@
                restricted.add(repo.name);
            }
        }
        StringUtils.sortRepositorynames(restricted);
        List<String> list = new ArrayList<String>();
        // repositories
        list.add(".*");
        // all repositories excluding personal repositories
        list.add("[^~].*");
        String lastProject = null;
        for (String repo : restricted) {
            String projectPath = StringUtils.getFirstPathElement(repo);
            if (lastProject == null || !lastProject.equalsIgnoreCase(projectPath)) {
                lastProject = projectPath;
                if (!StringUtils.isEmpty(projectPath)) {
                    // regex for all repositories within a project
                    list.add(projectPath + "/.*");
                }
                list.add(repo);
            }
        }
        // remove repositories for which user already has a permission
        if (permissions == null) {
            permissions = new ArrayList<RegistrantAccessPermission>();
        } else {
            for (RegistrantAccessPermission rp : permissions) {
                restricted.remove(rp.registrant);
                list.remove(rp.registrant);
            }
        }
        StringUtils.sortRepositorynames(restricted);
        repositoryPalette.setObjects(restricted, permissions);
        repositoryPalette.setObjects(list, permissions);
    }
    public void setTeams(List<TeamModel> teams, List<TeamModel> selected) {
src/com/gitblit/wicket/pages/EditTeamPage.java
@@ -36,11 +36,9 @@
import org.apache.wicket.model.util.CollectionModel;
import org.apache.wicket.model.util.ListModel;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.GitBlit;
import com.gitblit.GitBlitException;
import com.gitblit.models.RegistrantAccessPermission;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.TeamModel;
import com.gitblit.utils.StringUtils;
import com.gitblit.wicket.RequiresAdminRole;
@@ -83,14 +81,7 @@
        CompoundPropertyModel<TeamModel> model = new CompoundPropertyModel<TeamModel>(teamModel);
        List<String> repos = new ArrayList<String>();
        for (String repo : GitBlit.self().getRepositoryList()) {
            RepositoryModel repositoryModel = GitBlit.self().getRepositoryModel(repo);
            if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE)) {
                repos.add(repo);
            }
        }
        StringUtils.sortRepositorynames(repos);
        List<String> repos = getAccessRestrictedRepositoryList(true);
        List<String> teamUsers = new ArrayList<String>(teamModel.users);
        Collections.sort(teamUsers);
src/com/gitblit/wicket/pages/EditUserPage.java
@@ -34,12 +34,10 @@
import org.apache.wicket.model.util.CollectionModel;
import org.apache.wicket.model.util.ListModel;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.GitBlit;
import com.gitblit.GitBlitException;
import com.gitblit.Keys;
import com.gitblit.models.RegistrantAccessPermission;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.TeamModel;
import com.gitblit.models.UserModel;
import com.gitblit.utils.StringUtils;
@@ -86,14 +84,8 @@
                StringUtils.isEmpty(userModel.password) ? "" : userModel.password);
        CompoundPropertyModel<UserModel> model = new CompoundPropertyModel<UserModel>(userModel);
        List<String> repos = new ArrayList<String>();
        for (String repo : GitBlit.self().getRepositoryList()) {
            RepositoryModel repositoryModel = GitBlit.self().getRepositoryModel(repo);
            if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE)) {
                repos.add(repo);
            }
        }
        StringUtils.sortRepositorynames(repos);
        // build list of projects including all repositories wildcards
        List<String> repos = getAccessRestrictedRepositoryList(true);
        
        List<String> userTeams = new ArrayList<String>();
        for (TeamModel team : userModel.teams) {
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;
    }
}