diff --git a/config/alfresco/public-services-security-context.xml b/config/alfresco/public-services-security-context.xml index e6d774e3c2..628c7ac4d3 100644 --- a/config/alfresco/public-services-security-context.xml +++ b/config/alfresco/public-services-security-context.xml @@ -433,12 +433,13 @@ org.alfresco.service.cmr.model.FileFolderService.copy=ACL_NODE.0.sys:base.ReadProperties,ACL_NODE.1.sys:base.CreateChildren org.alfresco.service.cmr.model.FileFolderService.create=ACL_NODE.0.sys:base.CreateChildren org.alfresco.service.cmr.model.FileFolderService.delete=ACL_NODE.0.sys:base.DeleteNode - org.alfresco.service.cmr.model.FileFolderService.makeFolders=AFTER_ACL_PARENT.sys:base.CreateChildren + org.alfresco.service.cmr.model.FileFolderService.makeFolders=ACL_METHOD.ROLE_ADMINISTRATOR org.alfresco.service.cmr.model.FileFolderService.getNamePath=ACL_NODE.1.sys:base.ReadProperties org.alfresco.service.cmr.model.FileFolderService.resolveNamePath=AFTER_ACL_NODE.sys:base.ReadProperties org.alfresco.service.cmr.model.FileFolderService.getFileInfo=ACL_NODE.0.sys:base.ReadProperties org.alfresco.service.cmr.model.FileFolderService.getReader=ACL_NODE.0.sys:base.ReadContent org.alfresco.service.cmr.model.FileFolderService.getWriter=ACL_NODE.0.sys:base.WriteContent + org.alfresco.service.cmr.model.FileFolderService.getType=ACL_ALLOW diff --git a/source/java/org/alfresco/filesys/repo/CifsHelper.java b/source/java/org/alfresco/filesys/repo/CifsHelper.java index 4e8ee213e7..63536b13ea 100644 --- a/source/java/org/alfresco/filesys/repo/CifsHelper.java +++ b/source/java/org/alfresco/filesys/repo/CifsHelper.java @@ -38,6 +38,7 @@ import org.alfresco.jlan.server.filesys.FileExistsException; import org.alfresco.jlan.server.filesys.FileName; import org.alfresco.jlan.util.WildCard; import org.alfresco.model.ContentModel; +import org.alfresco.repo.model.filefolder.FileFolderServiceImpl; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.model.FileFolderService; import org.alfresco.service.cmr.repository.ContentData; @@ -352,7 +353,8 @@ public class CifsHelper NodeRef parentFolderNodeRef = rootNodeRef; if (folderPathElements.size() > 0) { - parentFolderNodeRef = fileFolderService.makeFolders( + parentFolderNodeRef = FileFolderServiceImpl.makeFolders( + fileFolderService, rootNodeRef, folderPathElements, ContentModel.TYPE_FOLDER).getNodeRef(); diff --git a/source/java/org/alfresco/repo/audit/hibernate/Audit.hbm.xml b/source/java/org/alfresco/repo/audit/hibernate/Audit.hbm.xml index a8db04e9b4..01b84cf8a6 100644 --- a/source/java/org/alfresco/repo/audit/hibernate/Audit.hbm.xml +++ b/source/java/org/alfresco/repo/audit/hibernate/Audit.hbm.xml @@ -115,7 +115,7 @@ - + select audit_date from @@ -124,7 +124,7 @@ audit_date.id = (select max(audit_date_2.id) from org.alfresco.repo.audit.hibernate.AuditDateImpl as audit_date_2) - + select audit_date from @@ -133,7 +133,7 @@ audit_date.id = (select max(audit_date_2.id) from org.alfresco.repo.audit.hibernate.AuditDateImpl as audit_date_2 where audit_date_2.date = :date) - + select audit_config from @@ -142,7 +142,7 @@ audit_config.id = (select max(audit_config_2.id) from org.alfresco.repo.audit.hibernate.AuditConfigImpl as audit_config_2) - + select audit_store_byid from @@ -158,7 +158,7 @@ audit_store.method is null) - + select audit_store_byid from diff --git a/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImpl.java b/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImpl.java index 14833d5647..37935fee09 100644 --- a/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImpl.java +++ b/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImpl.java @@ -35,12 +35,15 @@ import java.util.Map; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.model.ContentModel; import org.alfresco.repo.search.QueryParameterDefImpl; +import org.alfresco.repo.security.authentication.AuthenticationUtil; +import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.repo.tenant.TenantService; import org.alfresco.repo.transaction.AlfrescoTransactionSupport; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.model.FileExistsException; import org.alfresco.service.cmr.model.FileFolderService; +import org.alfresco.service.cmr.model.FileFolderServiceType; import org.alfresco.service.cmr.model.FileInfo; import org.alfresco.service.cmr.model.FileNotFoundException; import org.alfresco.service.cmr.repository.ChildAssociationRef; @@ -260,27 +263,46 @@ public class FileFolderServiceImpl implements FileFolderService */ private boolean isFolder(QName typeQName) throws InvalidTypeException { - if (dictionaryService.isSubClass(typeQName, ContentModel.TYPE_FOLDER)) + FileFolderServiceType type = getType(typeQName); + + switch (type) { - if (dictionaryService.isSubClass(typeQName, ContentModel.TYPE_SYSTEM_FOLDER)) - { - throw new InvalidTypeException("This service should ignore type " + ContentModel.TYPE_SYSTEM_FOLDER); - } - return true; - } - else if (dictionaryService.isSubClass(typeQName, ContentModel.TYPE_CONTENT) || - dictionaryService.isSubClass(typeQName, ContentModel.TYPE_LINK)) - { - // it is a regular file + case FILE: return false; - } - else - { - // unhandled type + case FOLDER: + return true; + case SYSTEM_FOLDER: + throw new InvalidTypeException("This service should ignore type " + ContentModel.TYPE_SYSTEM_FOLDER); + case INVALID: + default: throw new InvalidTypeException("Type is not handled by this service: " + typeQName); } } + + public FileFolderServiceType getType(QName typeQName) + { + if (dictionaryService.isSubClass(typeQName, ContentModel.TYPE_FOLDER)) + { + if (dictionaryService.isSubClass(typeQName, ContentModel.TYPE_SYSTEM_FOLDER)) + { + return FileFolderServiceType.SYSTEM_FOLDER; + } + return FileFolderServiceType.FOLDER; + } + else if (dictionaryService.isSubClass(typeQName, ContentModel.TYPE_CONTENT) || + dictionaryService.isSubClass(typeQName, ContentModel.TYPE_LINK)) + { + // it is a regular file + return FileFolderServiceType.FILE; + } + else + { + // unhandled type + return FileFolderServiceType.INVALID; + } + } + public List list(NodeRef contextNodeRef) { // execute the query @@ -774,39 +796,7 @@ public class FileFolderServiceImpl implements FileFolderService public FileInfo makeFolders(NodeRef parentNodeRef, List pathElements, QName folderTypeQName) { - if (pathElements.size() == 0) - { - throw new IllegalArgumentException("Path element list is empty"); - } - - // make sure that the folder is correct - boolean isFolder = isFolder(folderTypeQName); - if (!isFolder) - { - throw new IllegalArgumentException("Type is invalid to make folders with: " + folderTypeQName); - } - - NodeRef currentParentRef = parentNodeRef; - // just loop and create if necessary - for (String pathElement : pathElements) - { - // does it exist? - NodeRef nodeRef = searchSimple(currentParentRef, pathElement); - if (nodeRef == null) - { - // not present - make it - FileInfo createdFileInfo = create(currentParentRef, pathElement, folderTypeQName); - currentParentRef = createdFileInfo.getNodeRef(); - } - else - { - // it exists - currentParentRef = nodeRef; - } - } - // done - FileInfo fileInfo = toFileInfo(currentParentRef, true); - return fileInfo; + return FileFolderServiceImpl.makeFolders(this, parentNodeRef, pathElements, folderTypeQName); } public List getNamePath(NodeRef rootNodeRef, NodeRef nodeRef) throws FileNotFoundException @@ -938,4 +928,79 @@ public class FileFolderServiceImpl implements FileFolderService } return contentService.getWriter(nodeRef, ContentModel.PROP_CONTENT, true); } + + /** + * Helper method to create folders. + * + * This uses the provided service for all auditing and permission checks. + * + * @param service + * @param parentNodeRef + * @param pathElements + * @param folderTypeQName + * @return + */ + public static FileInfo makeFolders(FileFolderService service, NodeRef parentNodeRef, List pathElements, QName folderTypeQName) + { + if (pathElements.size() == 0) + { + throw new IllegalArgumentException("Path element list is empty"); + } + + // make sure that the folder is correct + boolean isFolder = service.getType(folderTypeQName) == FileFolderServiceType.FOLDER; + if (!isFolder) + { + throw new IllegalArgumentException("Type is invalid to make folders with: " + folderTypeQName); + } + + NodeRef currentParentRef = parentNodeRef; + // just loop and create if necessary + for (String pathElement : pathElements) + { + // does it exist? + // Navigation should not check permissions + NodeRef nodeRef = AuthenticationUtil.runAs(new SearchAsSystem(service, currentParentRef, pathElement), AuthenticationUtil.getSystemUserName()); + + if (nodeRef == null) + { + // not present - make it + // If this uses the public service it will check create permissions + FileInfo createdFileInfo = service.create(currentParentRef, pathElement, folderTypeQName); + currentParentRef = createdFileInfo.getNodeRef(); + } + else + { + // it exists + currentParentRef = nodeRef; + } + } + // done + // Used to call toFileInfo((currentParentRef, true); + // If this uses the public service this will check the final read access + FileInfo fileInfo = service.getFileInfo(currentParentRef); + + // Should we check the type? + return fileInfo; + } + + private static class SearchAsSystem implements RunAsWork + { + FileFolderService service; + NodeRef node; + String name; + + SearchAsSystem( FileFolderService service, NodeRef node, String name) + { + this.service = service; + this.node = node; + this.name = name; + } + + public NodeRef doWork() throws Exception + { + return service.searchSimple(node, name); + } + + } } diff --git a/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImplTest.java b/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImplTest.java index 8b1ed54b43..36e53e97e4 100644 --- a/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImplTest.java +++ b/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImplTest.java @@ -435,11 +435,11 @@ public class FileFolderServiceImplTest extends TestCase namePath.add("CCC"); namePath.add("DDD"); - FileInfo lastFileInfo = fileFolderService.makeFolders(rootNodeRef, namePath, ContentModel.TYPE_FOLDER); + FileInfo lastFileInfo = FileFolderServiceImpl.makeFolders(fileFolderService, rootNodeRef, namePath, ContentModel.TYPE_FOLDER); assertNotNull("First makeFolder failed", lastFileInfo); // check that a repeat works - FileInfo lastFileInfoAgain = fileFolderService.makeFolders(rootNodeRef, namePath, ContentModel.TYPE_FOLDER); + FileInfo lastFileInfoAgain = FileFolderServiceImpl.makeFolders(fileFolderService, rootNodeRef, namePath, ContentModel.TYPE_FOLDER); assertNotNull("Repeat makeFolders failed", lastFileInfoAgain); assertEquals("Repeat created new leaf", lastFileInfo.getNodeRef(), lastFileInfoAgain.getNodeRef()); // check that it worked @@ -468,11 +468,11 @@ public class FileFolderServiceImplTest extends TestCase namePath.add("C"); namePath.add("D"); - FileInfo lastFileInfo = fileFolderService.makeFolders(rootNodeRef, namePath, ContentModel.TYPE_FOLDER); + FileInfo lastFileInfo = FileFolderServiceImpl.makeFolders(fileFolderService, rootNodeRef, namePath, ContentModel.TYPE_FOLDER); assertNotNull("First makeFolder failed", lastFileInfo); // check that a repeat works - FileInfo lastFileInfoAgain = fileFolderService.makeFolders(rootNodeRef, namePath, ContentModel.TYPE_FOLDER); + FileInfo lastFileInfoAgain = FileFolderServiceImpl.makeFolders(fileFolderService, rootNodeRef, namePath, ContentModel.TYPE_FOLDER); assertNotNull("Repeat makeFolders failed", lastFileInfoAgain); assertEquals("Repeat created new leaf", lastFileInfo.getNodeRef(), lastFileInfoAgain.getNodeRef()); } diff --git a/source/java/org/alfresco/repo/remote/FileFolderRemoteServer.java b/source/java/org/alfresco/repo/remote/FileFolderRemoteServer.java index c4db4dcc2e..172243a2f8 100644 --- a/source/java/org/alfresco/repo/remote/FileFolderRemoteServer.java +++ b/source/java/org/alfresco/repo/remote/FileFolderRemoteServer.java @@ -32,6 +32,7 @@ import java.util.List; import net.sf.acegisecurity.Authentication; import org.alfresco.repo.content.encoding.ContentCharsetFinder; +import org.alfresco.repo.model.filefolder.FileFolderServiceImpl; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; @@ -398,7 +399,7 @@ public class FileFolderRemoteServer implements FileFolderRemote { public FileInfo execute() throws Throwable { - return fileFolderService.makeFolders(parentNodeRef, pathElements, folderTypeQName); + return FileFolderServiceImpl.makeFolders(fileFolderService, parentNodeRef, pathElements, folderTypeQName); } }; return retryingTransactionHelper.doInTransaction(callback, false, true); diff --git a/source/java/org/alfresco/repo/security/permissions/impl/PermissionServiceTest.java b/source/java/org/alfresco/repo/security/permissions/impl/PermissionServiceTest.java index 82d5ac506e..0bb0baa8d1 100644 --- a/source/java/org/alfresco/repo/security/permissions/impl/PermissionServiceTest.java +++ b/source/java/org/alfresco/repo/security/permissions/impl/PermissionServiceTest.java @@ -24,14 +24,18 @@ */ package org.alfresco.repo.security.permissions.impl; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; import java.util.Set; import net.sf.acegisecurity.Authentication; import net.sf.acegisecurity.GrantedAuthority; import org.alfresco.model.ContentModel; +import org.alfresco.repo.model.filefolder.FileFolderServiceImpl; import org.alfresco.repo.security.authentication.AuthenticationUtil; +import org.alfresco.repo.security.permissions.AccessDeniedException; import org.alfresco.repo.security.permissions.PermissionEntry; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.security.AccessPermission; @@ -89,6 +93,31 @@ public class PermissionServiceTest extends AbstractPermissionTest allowAndyReadChildren = new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ_CHILDREN), "andy", AccessStatus.ALLOWED); } + public void test_AR_2055() + { + runAs("admin"); + NodeRef folder = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN, QName.createQName("{namespace}one"), ContentModel.TYPE_FOLDER).getChildRef(); + + runAs("andy"); + List pathElements = new ArrayList(); + pathElements.add("monkey"); + try + { + FileFolderServiceImpl.makeFolders(serviceRegistry.getFileFolderService(), folder, pathElements, ContentModel.TYPE_FOLDER); + fail(); + } + catch (AccessDeniedException ade) + { + + } + + runAs("admin"); + permissionService.setPermission(folder, "andy", PermissionService.ALL_PERMISSIONS, true); + + FileFolderServiceImpl.makeFolders(serviceRegistry.getFileFolderService(), folder, pathElements, ContentModel.TYPE_FOLDER); + + } + public void testRunAsRealAndEffectiveUsers() { runAs("admin"); @@ -97,26 +126,28 @@ public class PermissionServiceTest extends AbstractPermissionTest runAs("andy"); assertTrue(permissionService.hasPermission(n1, getPermission(PermissionService.CONTRIBUTOR)) == AccessStatus.DENIED); - + assertEquals("andy", AuthenticationUtil.getCurrentRealUserName()); assertEquals("andy", AuthenticationUtil.getCurrentEffectiveUserName()); - - AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork() { + + AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork() + { public Object doWork() throws Exception { assertTrue(permissionService.hasPermission(n1, getPermission(PermissionService.CONTRIBUTOR)) == AccessStatus.ALLOWED); - + assertEquals("andy", AuthenticationUtil.getCurrentRealUserName()); assertEquals("admin", AuthenticationUtil.getCurrentEffectiveUserName()); return null; - }}, "admin"); - + } + }, "admin"); + assertEquals("andy", AuthenticationUtil.getCurrentRealUserName()); assertEquals("andy", AuthenticationUtil.getCurrentEffectiveUserName()); } - + public void testDefaultModelPermissions() { runAs("admin"); @@ -977,7 +1008,7 @@ public class PermissionServiceTest extends AbstractPermissionTest assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CHILDREN)) == AccessStatus.ALLOWED); assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED); } - + public void testPerformance() throws Exception { runAs("admin"); @@ -1002,17 +1033,16 @@ public class PermissionServiceTest extends AbstractPermissionTest runAs("andy"); permissionService.hasPermission(n5, PermissionService.READ); long start = System.nanoTime(); - for(int i = 0; i < 10000; i++) + for (int i = 0; i < 10000; i++) { permissionService.hasPermission(n5, PermissionService.READ); } long end = System.nanoTime(); - System.out.println("Can in "+((end-start)/10e9f/10000)); - System.out.println("Can per second "+(1/((end-start)/10e9f/10000))); - + System.out.println("Can in " + ((end - start) / 10e9f / 10000)); + System.out.println("Can per second " + (1 / ((end - start) / 10e9f / 10000))); + } - - + public void testPerf() throws Exception { runAs("admin"); @@ -1591,7 +1621,7 @@ public class PermissionServiceTest extends AbstractPermissionTest permissionService.setPermission(new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ_CONTENT), "AnDy", AccessStatus.ALLOWED)); permissionService.getAllSetPermissions(rootNodeRef); - + runAs("andy"); assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ)) == AccessStatus.ALLOWED); assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED); @@ -1882,9 +1912,9 @@ public class PermissionServiceTest extends AbstractPermissionTest NodeRef n9 = nodeService.createNode(n1, ContentModel.ASSOC_CHILDREN, QName.createQName("{namespace}nine"), ContentModel.TYPE_FOLDER).getChildRef(); NodeRef n10 = nodeService.createNode(n1, ContentModel.ASSOC_CHILDREN, QName.createQName("{namespace}ten"), ContentModel.TYPE_FOLDER).getChildRef(); - //assertEquals(0, permissionService.getAllSetPermissionsForCurrentUser().size()); - //assertEquals(0, permissionService.getAllSetPermissionsForAuthority("admin").size()); - //assertEquals(0, permissionService.getAllSetPermissionsForAuthority("andy").size()); + // assertEquals(0, permissionService.getAllSetPermissionsForCurrentUser().size()); + // assertEquals(0, permissionService.getAllSetPermissionsForAuthority("admin").size()); + // assertEquals(0, permissionService.getAllSetPermissionsForAuthority("andy").size()); permissionService.setPermission(new SimplePermissionEntry(n1, getPermission(PermissionService.READ_CHILDREN), "admin", AccessStatus.ALLOWED)); permissionService.setPermission(new SimplePermissionEntry(n1, getPermission(PermissionService.READ_CONTENT), "admin", AccessStatus.ALLOWED)); @@ -1901,50 +1931,50 @@ public class PermissionServiceTest extends AbstractPermissionTest permissionService.setPermission(new SimplePermissionEntry(n10, getPermission(PermissionService.READ_CHILDREN), "admin", AccessStatus.DENIED)); permissionService.setPermission(new SimplePermissionEntry(n10, getPermission(PermissionService.READ_CHILDREN), "andy", AccessStatus.ALLOWED)); -// assertEquals(10, permissionService.getAllSetPermissionsForCurrentUser().size()); -// assertEquals(10, permissionService.getAllSetPermissionsForAuthority("admin").size()); -// assertEquals(2, permissionService.getAllSetPermissionsForAuthority("andy").size()); -// assertNull(permissionService.getAllSetPermissionsForCurrentUser().get(rootNodeRef)); -// assertNull(permissionService.getAllSetPermissionsForAuthority("admin").get(rootNodeRef)); -// assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(rootNodeRef)); -// assertEquals(2, permissionService.getAllSetPermissionsForCurrentUser().get(n1).size()); -// assertEquals(2, permissionService.getAllSetPermissionsForAuthority("admin").get(n1).size()); -// assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n1)); -// assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n2).size()); -// assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n2).size()); -// assertEquals(1, permissionService.getAllSetPermissionsForAuthority("andy").get(n2).size()); -// assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n3).size()); -// assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n3).size()); -// assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n3)); -// assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n4).size()); -// assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n4).size()); -// assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n4)); -// assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n5).size()); -// assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n5).size()); -// assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n5)); -// assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n6).size()); -// assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n6).size()); -// assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n6)); -// assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n7).size()); -// assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n7).size()); -// assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n7)); -// assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n8).size()); -// assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n8).size()); -// assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n8)); -// assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n9).size()); -// assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n9).size()); -// assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n9)); -// assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n10).size()); -// assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n10).size()); -// assertEquals(1, permissionService.getAllSetPermissionsForAuthority("andy").get(n10).size()); + // assertEquals(10, permissionService.getAllSetPermissionsForCurrentUser().size()); + // assertEquals(10, permissionService.getAllSetPermissionsForAuthority("admin").size()); + // assertEquals(2, permissionService.getAllSetPermissionsForAuthority("andy").size()); + // assertNull(permissionService.getAllSetPermissionsForCurrentUser().get(rootNodeRef)); + // assertNull(permissionService.getAllSetPermissionsForAuthority("admin").get(rootNodeRef)); + // assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(rootNodeRef)); + // assertEquals(2, permissionService.getAllSetPermissionsForCurrentUser().get(n1).size()); + // assertEquals(2, permissionService.getAllSetPermissionsForAuthority("admin").get(n1).size()); + // assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n1)); + // assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n2).size()); + // assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n2).size()); + // assertEquals(1, permissionService.getAllSetPermissionsForAuthority("andy").get(n2).size()); + // assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n3).size()); + // assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n3).size()); + // assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n3)); + // assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n4).size()); + // assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n4).size()); + // assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n4)); + // assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n5).size()); + // assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n5).size()); + // assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n5)); + // assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n6).size()); + // assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n6).size()); + // assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n6)); + // assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n7).size()); + // assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n7).size()); + // assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n7)); + // assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n8).size()); + // assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n8).size()); + // assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n8)); + // assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n9).size()); + // assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n9).size()); + // assertNull(permissionService.getAllSetPermissionsForAuthority("andy").get(n9)); + // assertEquals(1, permissionService.getAllSetPermissionsForCurrentUser().get(n10).size()); + // assertEquals(1, permissionService.getAllSetPermissionsForAuthority("admin").get(n10).size()); + // assertEquals(1, permissionService.getAllSetPermissionsForAuthority("andy").get(n10).size()); } public void xtestFindNodesByPermission() { runAs("admin"); - - //StoreRef storeRef = rootNodeRef.getStoreRef(); + + // StoreRef storeRef = rootNodeRef.getStoreRef(); NodeRef n1 = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN, QName.createQName("{namespace}one"), ContentModel.TYPE_FOLDER).getChildRef(); NodeRef n2 = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN, QName.createQName("{namespace}two"), ContentModel.TYPE_FOLDER).getChildRef(); @@ -1961,14 +1991,22 @@ public class PermissionServiceTest extends AbstractPermissionTest String groupAuth = authorityService.createAuthority(AuthorityType.GROUP, null, "G"); authorityService.addAuthority(groupAuth, "andy"); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser("Consumer", true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser("Consumer", false, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", "Consumer", true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", "Consumer", false, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", "Consumer", true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", "Consumer", false, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, "Consumer", true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, "Consumer", false, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser("Consumer", + // true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser("Consumer", + // false, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", "Consumer", true, + // false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", "Consumer", false, + // false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", "Consumer", true, + // false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", "Consumer", false, + // false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, "Consumer", true, + // false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, "Consumer", false, + // false, false), storeRef).size()); permissionService.setPermission(new SimplePermissionEntry(n1, getPermission(PermissionService.CONSUMER), "admin", AccessStatus.ALLOWED)); permissionService.setPermission(new SimplePermissionEntry(n1, getPermission(PermissionService.CONSUMER), "andy", AccessStatus.ALLOWED)); @@ -1985,212 +2023,413 @@ public class PermissionServiceTest extends AbstractPermissionTest permissionService.setPermission(new SimplePermissionEntry(n4, getPermission(PermissionService.READ_CHILDREN), groupAuth, AccessStatus.ALLOWED)); permissionService.setPermission(new SimplePermissionEntry(n5, getPermission(PermissionService.READ_CONTENT), groupAuth, AccessStatus.ALLOWED)); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, false, false, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONSUMER, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONSUMER, false, false, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONSUMER, true, false, false), storeRef).size()); -// assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONSUMER, false, false, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONSUMER, true, false, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONSUMER, false, false, false), storeRef).size()); -// -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, false, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONTRIBUTOR, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONTRIBUTOR, false, false, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONTRIBUTOR, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONTRIBUTOR, false, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONTRIBUTOR, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONTRIBUTOR, false, false, false), storeRef).size()); -// -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, false, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ, false, false, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ, false, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ, false, false, false), storeRef).size()); -// -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, false, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CONTENT, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CONTENT, false, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CONTENT, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CONTENT, false, false, false), storeRef).size()); -// assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CONTENT, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CONTENT, false, false, false), storeRef).size()); -// -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, false, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CHILDREN, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CHILDREN, false, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CHILDREN, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CHILDREN, false, false, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CHILDREN, true, false, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CHILDREN, false, false, false), storeRef).size()); + // assertEquals(1, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, + // true, false, false), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, + // false, false, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONSUMER, true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONSUMER, false, false, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONSUMER, true, false, false), storeRef).size()); + // assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONSUMER, false, false, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONSUMER, true, false, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONSUMER, false, false, false), storeRef).size()); + // + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, + // true, false, false), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, + // false, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONTRIBUTOR, true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONTRIBUTOR, false, false, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONTRIBUTOR, true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONTRIBUTOR, false, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONTRIBUTOR, true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONTRIBUTOR, false, false, false), storeRef).size()); + // + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, true, + // false, false), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, false, + // false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ, true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ, false, false, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ, true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ, false, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ, true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ, false, false, false), storeRef).size()); + // + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, + // true, false, false), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, + // false, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CONTENT, true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CONTENT, false, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CONTENT, true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CONTENT, false, false, false), storeRef).size()); + // assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CONTENT, true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CONTENT, false, false, false), storeRef).size()); + // + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, + // true, false, false), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, + // false, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CHILDREN, true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CHILDREN, false, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CHILDREN, true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CHILDREN, false, false, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CHILDREN, true, false, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CHILDREN, false, false, false), storeRef).size()); // Include groups for exact match -// for (NodeRef nodeRef : permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, true, true, false)) -// { -// System.out.println("Found " + nodeService.getPath(nodeRef)); -// } + // for (NodeRef nodeRef : + // permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, true, true, false)) + // { + // System.out.println("Found " + nodeService.getPath(nodeRef)); + // } -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, false, true, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONSUMER, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONSUMER, false, true, false), storeRef).size()); -// assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONSUMER, true, true, false), storeRef).size()); -// assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONSUMER, false, true, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONSUMER, true, true, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONSUMER, false, true, false), storeRef).size()); -// -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, false, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONTRIBUTOR, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONTRIBUTOR, false, true, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONTRIBUTOR, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONTRIBUTOR, false, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONTRIBUTOR, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONTRIBUTOR, false, true, false), storeRef).size()); -// -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, false, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ, false, true, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ, false, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ, false, true, false), storeRef).size()); -// -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, false, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CONTENT, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CONTENT, false, true, false), storeRef).size()); -// assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CONTENT, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CONTENT, false, true, false), storeRef).size()); -// assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CONTENT, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CONTENT, false, true, false), storeRef).size()); -// -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, false, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CHILDREN, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CHILDREN, false, true, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CHILDREN, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CHILDREN, false, true, false), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CHILDREN, true, true, false), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CHILDREN, false, true, false), storeRef).size()); + // assertEquals(1, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, + // true, true, false), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, + // false, true, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONSUMER, true, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONSUMER, false, true, false), storeRef).size()); + // assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONSUMER, true, true, false), storeRef).size()); + // assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONSUMER, false, true, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONSUMER, true, true, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONSUMER, false, true, false), storeRef).size()); + // + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, + // true, true, false), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, + // false, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONTRIBUTOR, true, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONTRIBUTOR, false, true, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONTRIBUTOR, true, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONTRIBUTOR, false, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONTRIBUTOR, true, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONTRIBUTOR, false, true, false), storeRef).size()); + // + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, true, + // true, false), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, false, + // true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ, true, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ, false, true, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ, true, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ, false, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ, true, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ, false, true, false), storeRef).size()); + // + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, + // true, true, false), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, + // false, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CONTENT, true, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CONTENT, false, true, false), storeRef).size()); + // assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CONTENT, true, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CONTENT, false, true, false), storeRef).size()); + // assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CONTENT, true, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CONTENT, false, true, false), storeRef).size()); + // + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, + // true, true, false), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, + // false, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CHILDREN, true, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CHILDREN, false, true, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CHILDREN, true, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CHILDREN, false, true, false), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CHILDREN, true, true, false), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CHILDREN, false, true, false), storeRef).size()); // Include inexact permission -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, true, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, false, false, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONSUMER, true, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONSUMER, false, false, true), storeRef).size()); -// assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONSUMER, true, false, true), storeRef).size()); -// assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONSUMER, false, false, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONSUMER, true, false, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONSUMER, false, false, true), storeRef).size()); -// -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, true, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, false, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONTRIBUTOR, true, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONTRIBUTOR, false, false, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONTRIBUTOR, true, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONTRIBUTOR, false, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONTRIBUTOR, true, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONTRIBUTOR, false, false, true), storeRef).size()); -// -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, true, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, false, false, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ, true, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ, false, false, true), storeRef).size()); -// assertEquals(3, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ, true, false, true), storeRef).size()); -// assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ, false, false, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ, true, false, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ, false, false, true), storeRef).size()); -// -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, true, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, false, false, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CONTENT, true, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CONTENT, false, false, true), storeRef).size()); -// assertEquals(3, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CONTENT, true, false, true), storeRef).size()); -// assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CONTENT, false, false, true), storeRef).size()); -// assertEquals(3, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CONTENT, true, false, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CONTENT, false, false, true), storeRef).size()); -// -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, true, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, false, false, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CHILDREN, true, false, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CHILDREN, false, false, true), storeRef).size()); -// assertEquals(3, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CHILDREN, true, false, true), storeRef).size()); -// assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CHILDREN, false, false, true), storeRef).size()); -// assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CHILDREN, true, false, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CHILDREN, false, false, true), storeRef).size()); + // assertEquals(1, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, + // true, false, true), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, + // false, false, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONSUMER, true, false, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONSUMER, false, false, true), storeRef).size()); + // assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONSUMER, true, false, true), storeRef).size()); + // assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONSUMER, false, false, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONSUMER, true, false, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONSUMER, false, false, true), storeRef).size()); + // + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, + // true, false, true), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, + // false, false, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONTRIBUTOR, true, false, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONTRIBUTOR, false, false, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONTRIBUTOR, true, false, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONTRIBUTOR, false, false, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONTRIBUTOR, true, false, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONTRIBUTOR, false, false, true), storeRef).size()); + // + // assertEquals(1, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, true, + // false, true), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, false, + // false, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ, true, false, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ, false, false, true), storeRef).size()); + // assertEquals(3, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ, true, false, true), storeRef).size()); + // assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ, false, false, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ, true, false, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ, false, false, true), storeRef).size()); + // + // assertEquals(1, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, + // true, false, true), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, + // false, false, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CONTENT, true, false, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CONTENT, false, false, true), storeRef).size()); + // assertEquals(3, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CONTENT, true, false, true), storeRef).size()); + // assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CONTENT, false, false, true), storeRef).size()); + // assertEquals(3, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CONTENT, true, false, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CONTENT, false, false, true), storeRef).size()); + // + // assertEquals(1, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, + // true, false, true), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, + // false, false, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CHILDREN, true, false, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CHILDREN, false, false, true), storeRef).size()); + // assertEquals(3, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CHILDREN, true, false, true), storeRef).size()); + // assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CHILDREN, false, false, true), storeRef).size()); + // assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CHILDREN, true, false, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CHILDREN, false, false, true), storeRef).size()); // Inexact for all -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, true, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, false, true, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONSUMER, true, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONSUMER, false, true, true), storeRef).size()); -// assertEquals(3, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONSUMER, true, true, true), storeRef).size()); -// assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONSUMER, false, true, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONSUMER, true, true, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONSUMER, false, true, true), storeRef).size()); -// -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, true, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, false, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONTRIBUTOR, true, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.CONTRIBUTOR, false, true, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONTRIBUTOR, true, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.CONTRIBUTOR, false, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONTRIBUTOR, true, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.CONTRIBUTOR, false, true, true), storeRef).size()); -// -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, true, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, false, true, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ, true, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ, false, true, true), storeRef).size()); -// assertEquals(4, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ, true, true, true), storeRef).size()); -// assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ, false, true, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ, true, true, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ, false, true, true), storeRef).size()); -// -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, true, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, false, true, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CONTENT, true, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CONTENT, false, true, true), storeRef).size()); -// assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CONTENT, true, true, true), storeRef).size()); -// assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CONTENT, false, true, true), storeRef).size()); -// assertEquals(3, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CONTENT, true, true, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CONTENT, false, true, true), storeRef).size()); -// -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, true, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, false, true, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CHILDREN, true, true, true), storeRef).size()); -// assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", PermissionService.READ_CHILDREN, false, true, true), storeRef).size()); -// assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CHILDREN, true, true, true), storeRef).size()); -// assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", PermissionService.READ_CHILDREN, false, true, true), storeRef).size()); -// assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CHILDREN, true, true, true), storeRef).size()); -// assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, PermissionService.READ_CHILDREN, false, true, true), storeRef).size()); + // assertEquals(1, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, + // true, true, true), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONSUMER, + // false, true, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONSUMER, true, true, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONSUMER, false, true, true), storeRef).size()); + // assertEquals(3, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONSUMER, true, true, true), storeRef).size()); + // assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONSUMER, false, true, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONSUMER, true, true, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONSUMER, false, true, true), storeRef).size()); + // + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, + // true, true, true), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.CONTRIBUTOR, + // false, true, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONTRIBUTOR, true, true, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.CONTRIBUTOR, false, true, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONTRIBUTOR, true, true, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.CONTRIBUTOR, false, true, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONTRIBUTOR, true, true, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.CONTRIBUTOR, false, true, true), storeRef).size()); + // + // assertEquals(1, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, true, + // true, true), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ, false, + // true, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ, true, true, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ, false, true, true), storeRef).size()); + // assertEquals(4, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ, true, true, true), storeRef).size()); + // assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ, false, true, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ, true, true, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ, false, true, true), storeRef).size()); + // + // assertEquals(1, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, + // true, true, true), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CONTENT, + // false, true, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CONTENT, true, true, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CONTENT, false, true, true), storeRef).size()); + // assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CONTENT, true, true, true), storeRef).size()); + // assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CONTENT, false, true, true), storeRef).size()); + // assertEquals(3, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CONTENT, true, true, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CONTENT, false, true, true), storeRef).size()); + // + // assertEquals(1, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, + // true, true, true), storeRef).size()); + // assertEquals(0, + // filterForStore(permissionService.findNodesByAssignedPermissionForCurrentUser(PermissionService.READ_CHILDREN, + // false, true, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CHILDREN, true, true, true), storeRef).size()); + // assertEquals(0, filterForStore(permissionService.findNodesByAssignedPermission("admin", + // PermissionService.READ_CHILDREN, false, true, true), storeRef).size()); + // assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CHILDREN, true, true, true), storeRef).size()); + // assertEquals(5, filterForStore(permissionService.findNodesByAssignedPermission("andy", + // PermissionService.READ_CHILDREN, false, true, true), storeRef).size()); + // assertEquals(2, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CHILDREN, true, true, true), storeRef).size()); + // assertEquals(1, filterForStore(permissionService.findNodesByAssignedPermission(groupAuth, + // PermissionService.READ_CHILDREN, false, true, true), storeRef).size()); } -// private Set filterForStore(Set set, StoreRef storeRef) -// { -// Set toRemove = new HashSet(); -// for (NodeRef node : set) -// { -// if (!node.getStoreRef().equals(storeRef)) -// { -// toRemove.add(node); -// } -// } -// set.removeAll(toRemove); -// return set; -// } + // private Set filterForStore(Set set, StoreRef storeRef) + // { + // Set toRemove = new HashSet(); + // for (NodeRef node : set) + // { + // if (!node.getStoreRef().equals(storeRef)) + // { + // toRemove.add(node); + // } + // } + // set.removeAll(toRemove); + // return set; + // } // TODO: Test permissions on missing nodes diff --git a/source/java/org/alfresco/service/cmr/model/FileFolderService.java b/source/java/org/alfresco/service/cmr/model/FileFolderService.java index 303bdeea17..5990fc8cdb 100644 --- a/source/java/org/alfresco/service/cmr/model/FileFolderService.java +++ b/source/java/org/alfresco/service/cmr/model/FileFolderService.java @@ -26,6 +26,7 @@ package org.alfresco.service.cmr.model; import java.util.List; +import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.service.Auditable; import org.alfresco.service.PublicService; import org.alfresco.service.cmr.repository.ContentReader; @@ -200,6 +201,8 @@ public interface FileFolderService * @param folderTypeQName the types of nodes to create. This must be a valid subtype of * {@link org.alfresco.model.ContentModel#TYPE_FOLDER they folder type}. * @return Returns the info of the last folder in the path. + * + * @deprecated - See the static helper method FileFolderServiceImpl.makeFolders */ @Auditable(key = Auditable.Key.ARG_0, parameters = {"parentNodeRef", "pathElements", "folderTypeQName"}) public FileInfo makeFolders(NodeRef parentNodeRef, List pathElements, QName folderTypeQName); @@ -262,4 +265,14 @@ public interface FileFolderService */ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"}) public ContentWriter getWriter(NodeRef nodeRef); + + + /** + * Checks the type for whether it is a recognised file or folder type or is invalid for the FileFolderService. + * + * @param typeQName the type to check + * @return - the type + */ + @Auditable(parameters = {"typeQName"}) + public FileFolderServiceType getType(QName typeQName); } diff --git a/source/java/org/alfresco/service/cmr/model/FileFolderServiceType.java b/source/java/org/alfresco/service/cmr/model/FileFolderServiceType.java new file mode 100644 index 0000000000..a12b1f07e2 --- /dev/null +++ b/source/java/org/alfresco/service/cmr/model/FileFolderServiceType.java @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2005-2007 Alfresco Software Limited. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + * As a special exception to the terms and conditions of version 2.0 of + * the GPL, you may redistribute this Program in connection with Free/Libre + * and Open Source Software ("FLOSS") applications as described in Alfresco's + * FLOSS exception. You should have recieved a copy of the text describing + * the FLOSS exception, and it is also available here: + * http://www.alfresco.com/legal/licensing" + */ +package org.alfresco.service.cmr.model; + +/** + * The type for a file folder + * + * @author andyh + * + */ +public enum FileFolderServiceType +{ + FILE, FOLDER, SYSTEM_FOLDER, INVALID; +}