mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Updated Tests
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3371 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -27,19 +27,26 @@ import org.alfresco.repo.security.permissions.PermissionEntry;
|
|||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.security.AccessPermission;
|
import org.alfresco.service.cmr.security.AccessPermission;
|
||||||
import org.alfresco.service.cmr.security.AccessStatus;
|
import org.alfresco.service.cmr.security.AccessStatus;
|
||||||
|
import org.alfresco.service.cmr.security.AuthorityType;
|
||||||
import org.alfresco.service.cmr.security.PermissionService;
|
import org.alfresco.service.cmr.security.PermissionService;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
|
|
||||||
public class PermissionServiceTest extends AbstractPermissionTest
|
public class PermissionServiceTest extends AbstractPermissionTest
|
||||||
{
|
{
|
||||||
private SimplePermissionEntry denyAndyAll;
|
private SimplePermissionEntry denyAndyAll;
|
||||||
|
|
||||||
private SimplePermissionEntry allowAndyAll;
|
private SimplePermissionEntry allowAndyAll;
|
||||||
|
|
||||||
private SimplePermissionEntry denyAndyRead;
|
private SimplePermissionEntry denyAndyRead;
|
||||||
|
|
||||||
private SimplePermissionEntry allowAndyRead;
|
private SimplePermissionEntry allowAndyRead;
|
||||||
|
|
||||||
private SimplePermissionEntry denyAndyReadProperties;
|
private SimplePermissionEntry denyAndyReadProperties;
|
||||||
|
|
||||||
private SimplePermissionEntry allowAndyReadProperties;
|
private SimplePermissionEntry allowAndyReadProperties;
|
||||||
|
|
||||||
private SimplePermissionEntry allowAndyReadChildren;
|
private SimplePermissionEntry allowAndyReadChildren;
|
||||||
|
|
||||||
public PermissionServiceTest()
|
public PermissionServiceTest()
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
@@ -59,46 +66,80 @@ public class PermissionServiceTest extends AbstractPermissionTest
|
|||||||
}
|
}
|
||||||
fail("Missing role ROLE_AUTHENTICATED ");
|
fail("Missing role ROLE_AUTHENTICATED ");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onSetUpInTransaction() throws Exception
|
protected void onSetUpInTransaction() throws Exception
|
||||||
{
|
{
|
||||||
super.onSetUpInTransaction();
|
super.onSetUpInTransaction();
|
||||||
denyAndyAll = new SimplePermissionEntry(
|
denyAndyAll = new SimplePermissionEntry(rootNodeRef, permissionService.getAllPermissionReference(), "andy",
|
||||||
rootNodeRef,
|
|
||||||
permissionService.getAllPermissionReference(),
|
|
||||||
"andy",
|
|
||||||
AccessStatus.DENIED);
|
AccessStatus.DENIED);
|
||||||
allowAndyAll = new SimplePermissionEntry(
|
allowAndyAll = new SimplePermissionEntry(rootNodeRef, permissionService.getAllPermissionReference(), "andy",
|
||||||
rootNodeRef,
|
|
||||||
permissionService.getAllPermissionReference(),
|
|
||||||
"andy",
|
|
||||||
AccessStatus.ALLOWED);
|
AccessStatus.ALLOWED);
|
||||||
denyAndyRead = new SimplePermissionEntry(
|
denyAndyRead = new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ), "andy",
|
||||||
rootNodeRef,
|
|
||||||
getPermission(PermissionService.READ),
|
|
||||||
"andy",
|
|
||||||
AccessStatus.DENIED);
|
AccessStatus.DENIED);
|
||||||
allowAndyRead = new SimplePermissionEntry(
|
allowAndyRead = new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ), "andy",
|
||||||
rootNodeRef,
|
|
||||||
getPermission(PermissionService.READ),
|
|
||||||
"andy",
|
|
||||||
AccessStatus.ALLOWED);
|
|
||||||
denyAndyReadProperties = new SimplePermissionEntry(
|
|
||||||
rootNodeRef,
|
|
||||||
getPermission(PermissionService.READ_PROPERTIES),
|
|
||||||
"andy",
|
|
||||||
AccessStatus.DENIED);
|
|
||||||
allowAndyReadProperties = new SimplePermissionEntry(
|
|
||||||
rootNodeRef,
|
|
||||||
getPermission(PermissionService.READ_PROPERTIES),
|
|
||||||
"andy",
|
|
||||||
AccessStatus.ALLOWED);
|
|
||||||
allowAndyReadChildren = new SimplePermissionEntry(
|
|
||||||
rootNodeRef,
|
|
||||||
getPermission(PermissionService.READ_CHILDREN),
|
|
||||||
"andy",
|
|
||||||
AccessStatus.ALLOWED);
|
AccessStatus.ALLOWED);
|
||||||
|
denyAndyReadProperties = new SimplePermissionEntry(rootNodeRef,
|
||||||
|
getPermission(PermissionService.READ_PROPERTIES), "andy", AccessStatus.DENIED);
|
||||||
|
allowAndyReadProperties = new SimplePermissionEntry(rootNodeRef,
|
||||||
|
getPermission(PermissionService.READ_PROPERTIES), "andy", AccessStatus.ALLOWED);
|
||||||
|
allowAndyReadChildren = new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ_CHILDREN),
|
||||||
|
"andy", AccessStatus.ALLOWED);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testGetAllSetPermissions()
|
||||||
|
{
|
||||||
|
runAs("andy");
|
||||||
|
permissionService.setPermission(new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.DELETE),
|
||||||
|
"andy", AccessStatus.ALLOWED));
|
||||||
|
permissionService.setPermission(new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.DELETE),
|
||||||
|
"GROUP_GREEN", AccessStatus.ALLOWED));
|
||||||
|
permissionService.setPermission(new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ),
|
||||||
|
"andy", AccessStatus.ALLOWED));
|
||||||
|
permissionService.setPermission(new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ),
|
||||||
|
"GROUP_RED", AccessStatus.ALLOWED));
|
||||||
|
permissionService.setPermission(new SimplePermissionEntry(systemNodeRef,
|
||||||
|
getPermission(PermissionService.DELETE), "andy", AccessStatus.DENIED));
|
||||||
|
permissionService.setPermission(new SimplePermissionEntry(systemNodeRef,
|
||||||
|
getPermission(PermissionService.DELETE), "GROUP_GREEN", AccessStatus.DENIED));
|
||||||
|
|
||||||
|
NodeRef current = systemNodeRef;
|
||||||
|
Set<AccessPermission> setPermissions = new HashSet<AccessPermission>();
|
||||||
|
while (current != null)
|
||||||
|
{
|
||||||
|
Set<AccessPermission> morePermissions = permissionService.getAllSetPermissions(current);
|
||||||
|
for (AccessPermission toTest : morePermissions)
|
||||||
|
{
|
||||||
|
if (toTest.getAuthorityType() == AuthorityType.GROUP)
|
||||||
|
{
|
||||||
|
boolean add = true;
|
||||||
|
for (AccessPermission existing : setPermissions)
|
||||||
|
{
|
||||||
|
if (add
|
||||||
|
&& existing.getAuthority().equals(toTest.getAuthority())
|
||||||
|
&& existing.getPermission().equals(toTest.getPermission()))
|
||||||
|
{
|
||||||
|
add = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if (add)
|
||||||
|
{
|
||||||
|
setPermissions.add(toTest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (permissionService.getInheritParentPermissions(current))
|
||||||
|
{
|
||||||
|
current = nodeService.getPrimaryParent(current).getParentRef();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
current = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assertEquals(2, setPermissions.size());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSetInheritFalse()
|
public void testSetInheritFalse()
|
||||||
@@ -181,7 +222,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
|
|||||||
testSetNodePermissionEntry();
|
testSetNodePermissionEntry();
|
||||||
testSetNodePermissionEntry2();
|
testSetNodePermissionEntry2();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testDoubleSetAllowDeny()
|
public void testDoubleSetAllowDeny()
|
||||||
{
|
{
|
||||||
Set<? extends PermissionEntry> permissionEntries = null;
|
Set<? extends PermissionEntry> permissionEntries = null;
|
||||||
@@ -259,7 +300,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
|
|||||||
assertTrue(permissionService.getSetPermissions(rootNodeRef).inheritPermissions());
|
assertTrue(permissionService.getSetPermissions(rootNodeRef).inheritPermissions());
|
||||||
assertEquals(rootNodeRef, permissionService.getSetPermissions(rootNodeRef).getNodeRef());
|
assertEquals(rootNodeRef, permissionService.getSetPermissions(rootNodeRef).getNodeRef());
|
||||||
assertEquals(1, permissionService.getSetPermissions(rootNodeRef).getPermissionEntries().size());
|
assertEquals(1, permissionService.getSetPermissions(rootNodeRef).getPermissionEntries().size());
|
||||||
|
|
||||||
// remove other-all
|
// remove other-all
|
||||||
permissionService.deletePermission(rootNodeRef, "other", permissionService.getAllPermission());
|
permissionService.deletePermission(rootNodeRef, "other", permissionService.getAllPermission());
|
||||||
assertNotNull(permissionService.getSetPermissions(rootNodeRef));
|
assertNotNull(permissionService.getSetPermissions(rootNodeRef));
|
||||||
@@ -576,7 +617,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
|
|||||||
assertEquals(1, permissionService.getAllSetPermissions(rootNodeRef).size());
|
assertEquals(1, permissionService.getAllSetPermissions(rootNodeRef).size());
|
||||||
assertTrue(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
|
assertTrue(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
|
||||||
// Changed ny not enfocing READ
|
// Changed ny not enfocing READ
|
||||||
//assertFalse(permissionService.hasPermission(n1, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
|
// assertFalse(permissionService.hasPermission(n1, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
|
||||||
assertTrue(permissionService.hasPermission(n1, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
|
assertTrue(permissionService.hasPermission(n1, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
|
||||||
runAs("lemur");
|
runAs("lemur");
|
||||||
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
|
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
|
||||||
@@ -850,9 +891,9 @@ public class PermissionServiceTest extends AbstractPermissionTest
|
|||||||
{
|
{
|
||||||
runAs("admin");
|
runAs("admin");
|
||||||
|
|
||||||
//TransactionService transactionService = serviceRegistry.getTransactionService();
|
// TransactionService transactionService = serviceRegistry.getTransactionService();
|
||||||
//UserTransaction tx = transactionService.getUserTransaction();
|
// UserTransaction tx = transactionService.getUserTransaction();
|
||||||
//tx.begin();
|
// tx.begin();
|
||||||
|
|
||||||
NodeRef n1 = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN,
|
NodeRef n1 = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN,
|
||||||
QName.createQName("{namespace}one"), ContentModel.TYPE_FOLDER).getChildRef();
|
QName.createQName("{namespace}one"), ContentModel.TYPE_FOLDER).getChildRef();
|
||||||
@@ -890,7 +931,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
|
|||||||
for (int i = 0; i < 1000; i++)
|
for (int i = 0; i < 1000; i++)
|
||||||
{
|
{
|
||||||
getSession().flush();
|
getSession().flush();
|
||||||
//getSession().clear();
|
// getSession().clear();
|
||||||
start = System.nanoTime();
|
start = System.nanoTime();
|
||||||
assertTrue(permissionService.hasPermission(n10, getPermission(PermissionService.READ)) == AccessStatus.ALLOWED);
|
assertTrue(permissionService.hasPermission(n10, getPermission(PermissionService.READ)) == AccessStatus.ALLOWED);
|
||||||
end = System.nanoTime();
|
end = System.nanoTime();
|
||||||
@@ -910,7 +951,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
|
|||||||
System.out.println("Time is " + (time / 1000000000.0));
|
System.out.println("Time is " + (time / 1000000000.0));
|
||||||
// assertTrue((time / 1000000000.0) < 2.0);
|
// assertTrue((time / 1000000000.0) < 2.0);
|
||||||
|
|
||||||
//tx.rollback();
|
// tx.rollback();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAllPermissions()
|
public void testAllPermissions()
|
||||||
@@ -931,7 +972,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
|
|||||||
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED);
|
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED);
|
||||||
|
|
||||||
assertEquals(0, permissionService.getAllSetPermissions(rootNodeRef).size());
|
assertEquals(0, permissionService.getAllSetPermissions(rootNodeRef).size());
|
||||||
|
|
||||||
permissionService.setPermission(allowAndyAll);
|
permissionService.setPermission(allowAndyAll);
|
||||||
assertEquals(1, permissionService.getAllSetPermissions(rootNodeRef).size());
|
assertEquals(1, permissionService.getAllSetPermissions(rootNodeRef).size());
|
||||||
runAs("andy");
|
runAs("andy");
|
||||||
@@ -983,7 +1024,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
|
|||||||
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CHILDREN)) == AccessStatus.ALLOWED);
|
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CHILDREN)) == AccessStatus.ALLOWED);
|
||||||
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED);
|
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testOldAllPermissions()
|
public void testOldAllPermissions()
|
||||||
{
|
{
|
||||||
runAs("andy");
|
runAs("andy");
|
||||||
@@ -1002,7 +1043,8 @@ public class PermissionServiceTest extends AbstractPermissionTest
|
|||||||
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED);
|
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED);
|
||||||
|
|
||||||
assertEquals(0, permissionService.getAllSetPermissions(rootNodeRef).size());
|
assertEquals(0, permissionService.getAllSetPermissions(rootNodeRef).size());
|
||||||
permissionService.setPermission(new SimplePermissionEntry(rootNodeRef, PermissionServiceImpl.OLD_ALL_PERMISSIONS_REFERENCE, "andy", AccessStatus.ALLOWED));
|
permissionService.setPermission(new SimplePermissionEntry(rootNodeRef,
|
||||||
|
PermissionServiceImpl.OLD_ALL_PERMISSIONS_REFERENCE, "andy", AccessStatus.ALLOWED));
|
||||||
assertEquals(1, permissionService.getAllSetPermissions(rootNodeRef).size());
|
assertEquals(1, permissionService.getAllSetPermissions(rootNodeRef).size());
|
||||||
runAs("andy");
|
runAs("andy");
|
||||||
assertTrue(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ)) == AccessStatus.ALLOWED);
|
assertTrue(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ)) == AccessStatus.ALLOWED);
|
||||||
@@ -1423,12 +1465,10 @@ public class PermissionServiceTest extends AbstractPermissionTest
|
|||||||
|
|
||||||
permissionService.setInheritParentPermissions(n2, true);
|
permissionService.setInheritParentPermissions(n2, true);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
runAs("andy");
|
runAs("andy");
|
||||||
assertFalse(permissionService.hasPermission(n2, getPermission(PermissionService.READ)) == AccessStatus.ALLOWED);
|
assertFalse(permissionService.hasPermission(n2, getPermission(PermissionService.READ)) == AccessStatus.ALLOWED);
|
||||||
// Changed by removing permission read parents access
|
// Changed by removing permission read parents access
|
||||||
//assertFalse(permissionService.hasPermission(n2, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
|
// assertFalse(permissionService.hasPermission(n2, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
|
||||||
assertTrue(permissionService.hasPermission(n2, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
|
assertTrue(permissionService.hasPermission(n2, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
|
||||||
assertFalse(permissionService.hasPermission(n2, getPermission(PermissionService.READ_CHILDREN)) == AccessStatus.ALLOWED);
|
assertFalse(permissionService.hasPermission(n2, getPermission(PermissionService.READ_CHILDREN)) == AccessStatus.ALLOWED);
|
||||||
assertTrue(permissionService.hasPermission(n2, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED);
|
assertTrue(permissionService.hasPermission(n2, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED);
|
||||||
@@ -1701,8 +1741,6 @@ public class PermissionServiceTest extends AbstractPermissionTest
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// TODO: Test permissions on missing nodes
|
// TODO: Test permissions on missing nodes
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user