RM: Policy refactor

* moved policy implementations out of RMEntryVoter and into separate classes
 * rather than being a hard coded list, policies are now registered via spring allowing others to be easily added
 * re-arrange some of the support implementation
 * RMEntryVoter is now significantly smaller and most of the logic that was once encapsulated in here is spread over supporting classes and services
 * TODO .. need to review policies and determine which are appropraite .. much easier to do now!



git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@48815 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Roy Wetherall
2013-04-04 00:09:06 +00:00
parent 13d4f3f576
commit 05a40e014d
23 changed files with 1146 additions and 757 deletions

View File

@@ -78,6 +78,7 @@
<!-- Import fixed permission definitions for RM -->
<import resource="classpath:alfresco/module/org_alfresco_module_rm/rm-public-services-security-context.xml"/>
<import resource="classpath:alfresco/module/org_alfresco_module_rm/security/rm-method-security-context.xml"/>
<import resource="classpath:alfresco/module/org_alfresco_module_rm/security/rm-policy-context.xml"/>
<!-- Import the RM service's -->
<import resource="classpath:alfresco/module/org_alfresco_module_rm/rm-service-context.xml"/>

View File

@@ -14,7 +14,6 @@
abstract="true"
parent="RMSecurityCommon"
init-method="init">
<property name="voter" ref="rmEntryVoter"/>
<property name="capabilityService" ref="CapabilityService"/>
</bean>

View File

@@ -93,10 +93,7 @@
lazy-init="false"
parent="RMSecurityCommon"
depends-on="CapabilityService">
<!-- Services -->
<property name="namespacePrefixResolver" ref="namespaceService"/>
<property name="dictionaryService" ref="dictionaryService"/>
<property name="dispositionService" ref="dispositionService"/>
<property name="capabilityService" ref="capabilityService"/>
</bean>

View File

@@ -15,6 +15,6 @@
<bean id="rm-method-security-post-processor" class="org.alfresco.module.org_alfresco_module_rm.security.RMMethodSecurityPostProcessor">
<property name="properties" ref="rm-method-security-properties"/>
</bean>
</bean>
</beans>

View File

@@ -0,0 +1,55 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<bean id="basePolicy" abstract="true" parent="RMSecurityCommon" init-method="init">
<property name="capabilityService" ref="capabilityService" />
<property name="rmEntryVoter" ref="rmEntryVoter" />
</bean>
<bean id="readPolicy" parent="basePolicy" class="org.alfresco.module.org_alfresco_module_rm.capability.policy.ReadPolicy">
<property name="name" value="Read"/>
</bean>
<bean id="createPolicy" parent="basePolicy" class="org.alfresco.module.org_alfresco_module_rm.capability.policy.CreatePolicy">
<property name="name" value="Create"/>
</bean>
<bean id="movePolicy" parent="basePolicy" class="org.alfresco.module.org_alfresco_module_rm.capability.policy.MovePolicy">
<property name="name" value="Move"/>
</bean>
<bean id="updatePolicy" parent="basePolicy" class="org.alfresco.module.org_alfresco_module_rm.capability.policy.UpdatePolicy">
<property name="name" value="Update"/>
</bean>
<bean id="deletePolicy" parent="basePolicy" class="org.alfresco.module.org_alfresco_module_rm.capability.policy.DeletePolicy">
<property name="name" value="Delete"/>
</bean>
<bean id="updatePropertiesPolicy" parent="basePolicy" class="org.alfresco.module.org_alfresco_module_rm.capability.policy.UpdatePropertiesPolicy">
<property name="name" value="UpdateProperties"/>
</bean>
<bean id="assocPolicy" parent="basePolicy" class="org.alfresco.module.org_alfresco_module_rm.capability.policy.AssocPolicy">
<property name="name" value="Assoc"/>
</bean>
<bean id="writeContentPolicy" parent="basePolicy" class="org.alfresco.module.org_alfresco_module_rm.capability.policy.WriteContentPolicy">
<property name="name" value="WriteContent"/>
</bean>
<bean id="capabilityPolicy" parent="basePolicy" class="org.alfresco.module.org_alfresco_module_rm.capability.policy.CapabilityPolicy">
<property name="name" value="Capability"/>
</bean>
<bean id="declarePolicy" parent="basePolicy" class="org.alfresco.module.org_alfresco_module_rm.capability.policy.DeclarePolicy">
<property name="name" value="Declare"/>
</bean>
<bean id="readPropertyPolicy" parent="basePolicy" class="org.alfresco.module.org_alfresco_module_rm.capability.policy.ReadPropertyPolicy">
<property name="name" value="ReadProperty"/>
</bean>
</beans>