archived repositories are not writable

This commit is contained in:
Sebastian Sdorra
2012-03-30 11:38:13 +02:00
parent 6a342067ff
commit b3719f7e0d
8 changed files with 153 additions and 20 deletions

View File

@@ -35,8 +35,10 @@ package sonia.scm.repository;
//~--- non-JDK imports --------------------------------------------------------
import org.junit.Before;
import org.junit.Test;
import sonia.scm.config.ScmConfiguration;
import sonia.scm.security.ScmSecurityException;
import sonia.scm.user.User;
import sonia.scm.web.security.WebSecurityContext;
@@ -65,17 +67,7 @@ public class PermissionUtilTest
*/
public PermissionUtilTest()
{
repository = new Repository();
admams.getUser().setAdmin(true);
Permission[] permissions = new Permission[] {
new Permission("dent", PermissionType.READ),
new Permission("perfect",
PermissionType.WRITE),
new Permission("marvin",
PermissionType.OWNER) };
repository.setPermissions(Arrays.asList(permissions));
}
//~--- methods --------------------------------------------------------------
@@ -108,6 +100,25 @@ public class PermissionUtilTest
PermissionUtil.assertPermission(repository, admams, PermissionType.OWNER);
}
/**
* Method description
*
*/
@Before
public void before()
{
repository = new Repository();
Permission[] permissions = new Permission[] {
new Permission("dent", PermissionType.READ),
new Permission("perfect",
PermissionType.WRITE),
new Permission("marvin",
PermissionType.OWNER) };
repository.setPermissions(Arrays.asList(permissions));
}
/**
* Method description
*
@@ -161,6 +172,31 @@ public class PermissionUtilTest
PermissionType.OWNER));
}
/**
* Method description
*
*/
@Test
public void testIsWritable()
{
ScmConfiguration configuration = new ScmConfiguration();
configuration.setEnableRepositoryArchive(true);
assertTrue(PermissionUtil.isWritable(configuration, repository, perfect));
repository.setArchived(true);
assertFalse(PermissionUtil.isWritable(configuration, repository, perfect));
assertFalse(PermissionUtil.isWritable(configuration, repository, admams));
configuration.setEnableRepositoryArchive(false);
assertTrue(PermissionUtil.isWritable(configuration, repository, perfect));
assertTrue(PermissionUtil.isWritable(configuration, repository, admams));
assertFalse(PermissionUtil.isWritable(configuration, repository, dent));
configuration.setEnableRepositoryArchive(true);
repository.setArchived(false);
assertTrue(PermissionUtil.isWritable(configuration, repository, perfect));
assertTrue(PermissionUtil.isWritable(configuration, repository, admams));
assertFalse(PermissionUtil.isWritable(configuration, repository, dent));
}
//~--- get methods ----------------------------------------------------------
/**