mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
RM-1751 (Merge performance improvements made for RM 2.1.0.3 onto RM 2.2.1)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.2@89455 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -448,6 +448,7 @@
|
|||||||
<property name="permissionService" ref="PermissionService"/>
|
<property name="permissionService" ref="PermissionService"/>
|
||||||
<property name="policyComponent" ref="policyComponent"/>
|
<property name="policyComponent" ref="policyComponent"/>
|
||||||
<property name="ownableService" ref="ownableService" />
|
<property name="ownableService" ref="ownableService" />
|
||||||
|
<property name="authorityService" ref="AuthorityService" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="FilePlanPermissionService" class="org.springframework.aop.framework.ProxyFactoryBean">
|
<bean id="FilePlanPermissionService" class="org.springframework.aop.framework.ProxyFactoryBean">
|
||||||
|
@@ -32,6 +32,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
|
import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.util.ServiceBaseImpl;
|
import org.alfresco.module.org_alfresco_module_rm.util.ServiceBaseImpl;
|
||||||
import org.alfresco.repo.node.NodeServicePolicies;
|
import org.alfresco.repo.node.NodeServicePolicies;
|
||||||
import org.alfresco.repo.policy.JavaBehaviour;
|
import org.alfresco.repo.policy.JavaBehaviour;
|
||||||
@@ -42,6 +43,8 @@ import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
|||||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||||
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.AuthorityService;
|
||||||
|
import org.alfresco.service.cmr.security.AuthorityType;
|
||||||
import org.alfresco.service.cmr.security.OwnableService;
|
import org.alfresco.service.cmr.security.OwnableService;
|
||||||
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;
|
||||||
@@ -69,6 +72,9 @@ public class FilePlanPermissionServiceImpl extends ServiceBaseImpl
|
|||||||
/** Policy component */
|
/** Policy component */
|
||||||
private PolicyComponent policyComponent;
|
private PolicyComponent policyComponent;
|
||||||
|
|
||||||
|
/** Authority service */
|
||||||
|
private AuthorityService authorityService;
|
||||||
|
|
||||||
/** Logger */
|
/** Logger */
|
||||||
private static final Log LOGGER = LogFactory.getLog(FilePlanPermissionServiceImpl.class);
|
private static final Log LOGGER = LogFactory.getLog(FilePlanPermissionServiceImpl.class);
|
||||||
|
|
||||||
@@ -141,6 +147,26 @@ public class FilePlanPermissionServiceImpl extends ServiceBaseImpl
|
|||||||
this.ownableService = ownableService;
|
this.ownableService = ownableService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the authority service
|
||||||
|
*
|
||||||
|
* @return The authority service
|
||||||
|
*/
|
||||||
|
public AuthorityService getAuthorityService()
|
||||||
|
{
|
||||||
|
return this.authorityService;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the authority service
|
||||||
|
*
|
||||||
|
* @param authorityService The authority service
|
||||||
|
*/
|
||||||
|
public void setAuthorityService(AuthorityService authorityService)
|
||||||
|
{
|
||||||
|
this.authorityService = authorityService;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.alfresco.module.org_alfresco_module_rm.security.FilePlanPermissionService#setupRecordCategoryPermissions(org.alfresco.service.cmr.repository.NodeRef)
|
* @see org.alfresco.module.org_alfresco_module_rm.security.FilePlanPermissionService#setupRecordCategoryPermissions(org.alfresco.service.cmr.repository.NodeRef)
|
||||||
*/
|
*/
|
||||||
@@ -259,9 +285,10 @@ public class FilePlanPermissionServiceImpl extends ServiceBaseImpl
|
|||||||
|
|
||||||
if (!inheritanceAllowed)
|
if (!inheritanceAllowed)
|
||||||
{
|
{
|
||||||
// set extended reader permissions
|
|
||||||
getPermissionService().setPermission(nodeRef, EXTENDED_READER, READ_RECORDS, true);
|
getPermissionService().setPermission(nodeRef, EXTENDED_READER, READ_RECORDS, true);
|
||||||
getPermissionService().setPermission(nodeRef, EXTENDED_WRITER, FILING, true);
|
getPermissionService().setPermission(nodeRef, EXTENDED_WRITER, FILING, true);
|
||||||
|
String adminRole = getAdminRole(nodeRef);
|
||||||
|
getPermissionService().setPermission(nodeRef, adminRole, RMPermissionModel.FILING, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove owner
|
// remove owner
|
||||||
@@ -273,6 +300,16 @@ public class FilePlanPermissionServiceImpl extends ServiceBaseImpl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getAdminRole(NodeRef nodeRef)
|
||||||
|
{
|
||||||
|
NodeRef filePlan = getFilePlan(nodeRef);
|
||||||
|
if (filePlan == null)
|
||||||
|
{
|
||||||
|
throw new AlfrescoRuntimeException("The file plan could not be found for the give node: '" + nodeRef + "'.");
|
||||||
|
}
|
||||||
|
return authorityService.getName(AuthorityType.GROUP, FilePlanRoleService.ROLE_ADMIN + filePlan.getId());
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isInheritanceAllowed(NodeRef nodeRef, Boolean isParentNodeFilePlan)
|
private boolean isInheritanceAllowed(NodeRef nodeRef, Boolean isParentNodeFilePlan)
|
||||||
{
|
{
|
||||||
return !(isFilePlan(nodeRef) || isTransfer(nodeRef) || isHold(nodeRef) || isUnfiledRecordsContainer(nodeRef) || (isRecordCategory(nodeRef) && isTrue(isParentNodeFilePlan)));
|
return !(isFilePlan(nodeRef) || isTransfer(nodeRef) || isHold(nodeRef) || isUnfiledRecordsContainer(nodeRef) || (isRecordCategory(nodeRef) && isTrue(isParentNodeFilePlan)));
|
||||||
|
@@ -31,6 +31,7 @@ import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
|||||||
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.springframework.extensions.webscripts.GUID;
|
import org.springframework.extensions.webscripts.GUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1235,11 +1236,8 @@ public class FilePlanPermissionServiceImplTest extends BaseRMTestCase
|
|||||||
assertEquals(RMPermissionModel.READ_RECORDS, accessPermissions.get(ExtendedReaderDynamicAuthority.EXTENDED_READER));
|
assertEquals(RMPermissionModel.READ_RECORDS, accessPermissions.get(ExtendedReaderDynamicAuthority.EXTENDED_READER));
|
||||||
assertTrue(accessPermissions.containsKey(ExtendedWriterDynamicAuthority.EXTENDED_WRITER));
|
assertTrue(accessPermissions.containsKey(ExtendedWriterDynamicAuthority.EXTENDED_WRITER));
|
||||||
assertEquals(RMPermissionModel.FILING, accessPermissions.get(ExtendedWriterDynamicAuthority.EXTENDED_WRITER));
|
assertEquals(RMPermissionModel.FILING, accessPermissions.get(ExtendedWriterDynamicAuthority.EXTENDED_WRITER));
|
||||||
// FIXME!!!
|
String adminRole = authorityService.getName(AuthorityType.GROUP, FilePlanRoleService.ROLE_ADMIN + filePlan.getId());
|
||||||
/*
|
assertTrue(accessPermissions.containsKey(adminRole));
|
||||||
String allRoles = authorityService.getName(AuthorityType.GROUP, FilePlanRoleService.ROLE_ADMIN + filePlan.getId());
|
assertEquals(RMPermissionModel.FILING, accessPermissions.get(adminRole));
|
||||||
assertTrue(accessPermissions.containsKey(allRoles));
|
|
||||||
assertEquals(RMPermissionModel.FILING, accessPermissions.get(allRoles));
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -47,8 +47,6 @@ public class RecordServiceImplUnitTest extends BaseUnitTest
|
|||||||
|
|
||||||
private static QName TYPE_MY_FILE_PLAN = generateQName();
|
private static QName TYPE_MY_FILE_PLAN = generateQName();
|
||||||
private static QName ASPECT_FOR_FILE_PLAN = generateQName();
|
private static QName ASPECT_FOR_FILE_PLAN = generateQName();
|
||||||
//private static QName ASPECT_FOR_MY_FILE_PLAN = generateQName();
|
|
||||||
//private static QName ASPECT_FOR_BOTH = generateQName();
|
|
||||||
|
|
||||||
@InjectMocks private RecordServiceImpl recordService;
|
@InjectMocks private RecordServiceImpl recordService;
|
||||||
|
|
||||||
@@ -83,39 +81,4 @@ public class RecordServiceImplUnitTest extends BaseUnitTest
|
|||||||
assertEquals(1, types.size());
|
assertEquals(1, types.size());
|
||||||
assertTrue(types.contains(TYPE_FILE_PLAN));
|
assertTrue(types.contains(TYPE_FILE_PLAN));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testGetRecordMetadataAspects()
|
|
||||||
{
|
|
||||||
// // register a couple of record meta-data aspects
|
|
||||||
// recordService.registerRecordMetadataAspect(ASPECT_FOR_FILE_PLAN, TYPE_FILE_PLAN);
|
|
||||||
// recordService.registerRecordMetadataAspect(ASPECT_FOR_MY_FILE_PLAN, TYPE_MY_FILE_PLAN);
|
|
||||||
// recordService.registerRecordMetadataAspect(ASPECT_FOR_BOTH, TYPE_FILE_PLAN);
|
|
||||||
// recordService.registerRecordMetadataAspect(ASPECT_FOR_BOTH, TYPE_MY_FILE_PLAN);
|
|
||||||
//
|
|
||||||
// Set<QName> set = recordService.getRecordMetadataAspects(filePlanComponent);
|
|
||||||
// assertNotNull(set);
|
|
||||||
// assertEquals(2, set.size());
|
|
||||||
// assertTrue(set.contains(ASPECT_FOR_FILE_PLAN));
|
|
||||||
// assertTrue(set.contains(ASPECT_FOR_BOTH));
|
|
||||||
//
|
|
||||||
// set = recordService.getRecordMetadataAspects(nonStandardFilePlanComponent);
|
|
||||||
// assertNotNull(set);
|
|
||||||
// assertEquals(2, set.size());
|
|
||||||
// assertTrue(set.contains(ASPECT_FOR_MY_FILE_PLAN));
|
|
||||||
// assertTrue(set.contains(ASPECT_FOR_BOTH));
|
|
||||||
//
|
|
||||||
// set = recordService.getRecordMetadataAspects(TYPE_FILE_PLAN);
|
|
||||||
// assertNotNull(set);
|
|
||||||
// assertEquals(2, set.size());
|
|
||||||
// assertTrue(set.contains(ASPECT_FOR_FILE_PLAN));
|
|
||||||
// assertTrue(set.contains(ASPECT_FOR_BOTH));
|
|
||||||
//
|
|
||||||
// set = recordService.getRecordMetadataAspects(TYPE_MY_FILE_PLAN);
|
|
||||||
// assertNotNull(set);
|
|
||||||
// assertEquals(2, set.size());
|
|
||||||
// assertTrue(set.contains(ASPECT_FOR_MY_FILE_PLAN));
|
|
||||||
// assertTrue(set.contains(ASPECT_FOR_BOTH));
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user