From 661db6c2948e4848b29645c66e17cbfcaa780ae0 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 23 Jan 2013 07:52:20 -0500
Subject: [PATCH] Revised multiple owners contribution
---
tests/com/gitblit/tests/PermissionsTest.java | 51 ++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 48 insertions(+), 3 deletions(-)
diff --git a/tests/com/gitblit/tests/PermissionsTest.java b/tests/com/gitblit/tests/PermissionsTest.java
index 6eca046..5a95104 100644
--- a/tests/com/gitblit/tests/PermissionsTest.java
+++ b/tests/com/gitblit/tests/PermissionsTest.java
@@ -2327,7 +2327,7 @@
repository.accessRestriction = AccessRestrictionType.VIEW;
UserModel user = new UserModel("test");
- repository.addRepoAdministrator(user.username);
+ repository.addOwner(user.username);
assertFalse("user SHOULD NOT HAVE a repository permission!", user.hasRepositoryPermission(repository.name));
assertTrue("owner CAN NOT view!", user.canView(repository));
@@ -2345,13 +2345,58 @@
}
@Test
+ public void testMultipleOwners() throws Exception {
+ RepositoryModel repository = new RepositoryModel("myrepo.git", null, null, new Date());
+ repository.authorizationControl = AuthorizationControl.NAMED;
+ repository.accessRestriction = AccessRestrictionType.VIEW;
+
+ UserModel user = new UserModel("test");
+ repository.addOwner(user.username);
+ UserModel user2 = new UserModel("test2");
+ repository.addOwner(user2.username);
+
+ // first owner
+ assertFalse("user SHOULD NOT HAVE a repository permission!", user.hasRepositoryPermission(repository.name));
+ assertTrue("owner CAN NOT view!", user.canView(repository));
+ assertTrue("owner CAN NOT clone!", user.canClone(repository));
+ assertTrue("owner CAN NOT push!", user.canPush(repository));
+
+ assertTrue("owner CAN NOT create ref!", user.canCreateRef(repository));
+ assertTrue("owner CAN NOT delete ref!", user.canDeleteRef(repository));
+ assertTrue("owner CAN NOT rewind ref!", user.canRewindRef(repository));
+
+ assertTrue("owner CAN NOT fork!", user.canFork(repository));
+
+ assertFalse("owner CAN NOT delete!", user.canDelete(repository));
+ assertTrue("owner CAN NOT edit!", user.canEdit(repository));
+
+ // second owner
+ assertFalse("user SHOULD NOT HAVE a repository permission!", user2.hasRepositoryPermission(repository.name));
+ assertTrue("owner CAN NOT view!", user2.canView(repository));
+ assertTrue("owner CAN NOT clone!", user2.canClone(repository));
+ assertTrue("owner CAN NOT push!", user2.canPush(repository));
+
+ assertTrue("owner CAN NOT create ref!", user2.canCreateRef(repository));
+ assertTrue("owner CAN NOT delete ref!", user2.canDeleteRef(repository));
+ assertTrue("owner CAN NOT rewind ref!", user2.canRewindRef(repository));
+
+ assertTrue("owner CAN NOT fork!", user2.canFork(repository));
+
+ assertFalse("owner CAN NOT delete!", user2.canDelete(repository));
+ assertTrue("owner CAN NOT edit!", user2.canEdit(repository));
+
+ assertTrue(repository.isOwner(user.username));
+ assertTrue(repository.isOwner(user2.username));
+ }
+
+ @Test
public void testOwnerPersonalRepository() throws Exception {
RepositoryModel repository = new RepositoryModel("~test/myrepo.git", null, null, new Date());
repository.authorizationControl = AuthorizationControl.NAMED;
repository.accessRestriction = AccessRestrictionType.VIEW;
UserModel user = new UserModel("test");
- repository.addRepoAdministrator(user.username);
+ repository.addOwner(user.username);
assertFalse("user SHOULD NOT HAVE a repository permission!", user.hasRepositoryPermission(repository.name));
assertTrue("user CAN NOT view!", user.canView(repository));
@@ -2375,7 +2420,7 @@
repository.accessRestriction = AccessRestrictionType.VIEW;
UserModel user = new UserModel("visitor");
- repository.addRepoAdministrator("test");
+ repository.addOwner("test");
assertFalse("user HAS a repository permission!", user.hasRepositoryPermission(repository.name));
assertFalse("user CAN view!", user.canView(repository));
--
Gitblit v1.9.1