summaryrefslogtreecommitdiffstats
path: root/src/com/gitblit/client/EditTeamDialog.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/gitblit/client/EditTeamDialog.java')
-rw-r--r--src/com/gitblit/client/EditTeamDialog.java27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/com/gitblit/client/EditTeamDialog.java b/src/com/gitblit/client/EditTeamDialog.java
index 81146fc6..4350310e 100644
--- a/src/com/gitblit/client/EditTeamDialog.java
+++ b/src/com/gitblit/client/EditTeamDialog.java
@@ -315,18 +315,35 @@ public class EditTeamDialog extends JDialog {
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) {