From 2d48e28bf1068b20129b2e3d5b96ecaff48f9f2f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 23 Oct 2012 22:27:56 -0400
Subject: [PATCH] Implemented exclusion (X) permission
---
src/com/gitblit/wicket/pages/EditRepositoryPage.java | 23 ++++++++++++-----------
1 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
index 4e34d89..98b04f5 100644
--- a/src/com/gitblit/wicket/pages/EditRepositoryPage.java
+++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -54,9 +54,8 @@
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.TeamAccessPermission;
-import com.gitblit.models.UserAccessPermission;
import com.gitblit.models.UserModel;
import com.gitblit.utils.ArrayUtils;
import com.gitblit.utils.StringUtils;
@@ -64,8 +63,7 @@
import com.gitblit.wicket.StringChoiceRenderer;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.BulletListPanel;
-import com.gitblit.wicket.panels.TeamPermissionsPanel;
-import com.gitblit.wicket.panels.UserPermissionsPanel;
+import com.gitblit.wicket.panels.RegistrantPermissionsPanel;
public class EditRepositoryPage extends RootSubPage {
@@ -117,14 +115,15 @@
List<String> indexedBranches = new ArrayList<String>();
List<String> federationSets = new ArrayList<String>();
- final List<UserAccessPermission> repositoryUsers = new ArrayList<UserAccessPermission>();
- final List<TeamAccessPermission> repositoryTeams = new ArrayList<TeamAccessPermission>();
+ final List<RegistrantAccessPermission> repositoryUsers = new ArrayList<RegistrantAccessPermission>();
+ final List<RegistrantAccessPermission> repositoryTeams = new ArrayList<RegistrantAccessPermission>();
List<String> preReceiveScripts = new ArrayList<String>();
List<String> postReceiveScripts = new ArrayList<String>();
GitBlitWebSession session = GitBlitWebSession.get();
final UserModel user = session.getUser() == null ? UserModel.ANONYMOUS : session.getUser();
-
+ final boolean allowEditName = isCreate || isAdmin || repositoryModel.isUsersPersonalRepository(user.username);
+
if (isCreate) {
if (user.canAdmin()) {
super.setupPage(getString("gb.newRepository"), "");
@@ -146,8 +145,10 @@
final String oldName = repositoryModel.name;
- UserPermissionsPanel usersPalette = new UserPermissionsPanel("users", repositoryUsers, getAccessPermissions());
- TeamPermissionsPanel teamsPalette = new TeamPermissionsPanel("teams", repositoryTeams, getAccessPermissions());
+ RegistrantPermissionsPanel usersPalette = new RegistrantPermissionsPanel("users",
+ GitBlit.self().getAllUsernames(), repositoryUsers, getAccessPermissions());
+ RegistrantPermissionsPanel teamsPalette = new RegistrantPermissionsPanel("teams",
+ GitBlit.self().getAllTeamnames(), repositoryTeams, getAccessPermissions());
// indexed local branches palette
List<String> allLocalBranches = new ArrayList<String>();
@@ -253,7 +254,7 @@
return;
}
- if (user.canCreate() && !user.canAdmin()) {
+ if (user.canCreate() && !user.canAdmin() && allowEditName) {
// ensure repository name begins with the user's path
if (!repositoryModel.name.startsWith(user.getPersonalPath())) {
error(MessageFormat.format(getString("gb.illegalPersonalRepositoryLocation"),
@@ -360,7 +361,7 @@
form.add(new SimpleAttributeModifier("autocomplete", "off"));
// field names reflective match RepositoryModel fields
- form.add(new TextField<String>("name").setEnabled(isCreate || isAdmin || repositoryModel.isUsersPersonalRepository(user.username)));
+ form.add(new TextField<String>("name").setEnabled(allowEditName));
form.add(new TextField<String>("description"));
form.add(new DropDownChoice<String>("owner", GitBlit.self().getAllUsernames())
.setEnabled(GitBlitWebSession.get().canAdmin()));
--
Gitblit v1.9.1