RM Move Capabilities:

* Added Record Folder, Record Category and composite Move capabilities (all private and based on exisiting capabilities)
  * Added RM UI actions for record, folder and category move wired up to new capabilities .. this means the UI actions correctly reflect the capabilities of the user
  * Unit tests
  * Started to move the capabilitiy spring def's into logically seperate files
  * Rewrote origional RecordsMove capability (replaced with spring config)
  * Added TargetCapability configuration to declarative capability implementation .. provides a way to evaluate capability when a target node reference is being taken into consideration
  * Added title and description to declarative capability (for future use)
  * Removed unwated 'old' doclib overrides (where confussing the issue)
  * Clean up the security service which was duplicating methods now found on the capability service
  * Remove capability set support ... old work around used before updated evaluators where used
  * Fixes RM-203, RM-328, RM-165, RM-204 (and possibly some others I've yet to find!)



git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.0@36338 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Roy Wetherall
2012-05-14 05:57:37 +00:00
parent 4be2e83f1a
commit 1ebf14fd12
37 changed files with 1160 additions and 10658 deletions

View File

@@ -0,0 +1,92 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<!-- Capability Conditions -->
<bean id="capabilityCondition.base"
abstract="true">
<property name="recordsManagementService" ref="recordsManagementService" />
<property name="permissionService" ref="PermissionService" />
<property name="nodeService" ref="NodeService" />
</bean>
<bean id="capabilityCondition.frozen"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.FrozenCapabilityCondition">
</bean>
<bean id="capabilityCondition.frozenOrFrozenChildren"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.FrozenCapabilityCondition">
<property name="checkChildren" value="true" />
</bean>
<bean id="capabilityCondition.frozenOrHold"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.FrozenOrHoldCondition">
</bean>
<bean id="capabilityCondition.cutoff"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.CutoffCapabilityCondition">
</bean>
<bean id="capabilityCondition.closed"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.ClosedCapabilityCondition">
</bean>
<bean id="capabilityCondition.declared"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.DeclaredCapabilityCondition">
</bean>
<bean id="capabilityCondition.filling"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.FillingCapabilityCondition">
</bean>
<bean id="capabilityCondition.transferred"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.TransferredCapabilityCondition">
</bean>
<bean id="capabilityCondition.destroyed"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.DestroyedCapabilityCondition">
</bean>
<bean id="capabilityCondition.vitalRecordOrFolder"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.VitalRecordOrFolderCapabilityCondition">
</bean>
<bean id="capabilityCondition.destroyMayBeScheduled"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.MayBeScheduledCapabilityCondition">
<property name="dispositionService" ref="DispositionService"/>
<property name="dispositionAction" value="destroy"/>
</bean>
<bean id="capabilityCondition.destroyIsScheduled"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.IsScheduledCapabilityCondition">
<property name="dispositionService" ref="DispositionService"/>
<property name="dispositionAction" value="destroy"/>
</bean>
<bean id="capabilityCondition.hasEvents"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.HasEventsCapabilityCondition">
<property name="dispositionService" ref="DispositionService"/>
</bean>
<bean id="capabilityCondition.fileable"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.FileableCapabilityCondition">
<property name="dictionaryService" ref="DictionaryService"/>
</bean>
</beans>

View File

@@ -0,0 +1,108 @@
<?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="rmCreate"
parent="rmBaseCapability"
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.CreateCapability">
<property name="name" value="Create"/>
<property name="private" value="true"/>
</bean>
<bean id="rmDelete"
parent="compositeCapability">
<property name="name" value="Delete"/>
<property name="private" value="true"/>
<property name="capabilities">
<list>
<ref bean="rmDestroyRecordsScheduledForDestructionCapability"/>
<ref bean="rmDestroyRecordsCapability"/>
<ref bean="rmDeleteRecordsCapability"/>
<ref bean="rmCreateModifyDestroyFileplanMetadataCapability"/>
<ref bean="rmCreateModifyDestroyFoldersCapability"/>
</list>
</property>
</bean>
<bean id="rmUpdate"
parent="compositeCapability"
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.UpdateCapability">
<property name="name" value="Update"/>
<property name="private" value="true"/>
<property name="capabilities">
<list>
<ref bean="rmCreateModifyDestroyFoldersCapability"/>
<ref bean="rmCreateModifyDestroyFileplanMetadataCapability"/>
<ref bean="rmEditDeclaredRecordMetadataCapability"/>
<ref bean="rmEditNonRecordMetadataCapability"/>
<ref bean="rmCreateModifyRecordsInCuttoffFoldersCapability"/>
<ref bean="rmEditRecordMetadataCapability"/>
</list>
</property>
</bean>
<bean id="rmUpdateProperties"
parent="compositeCapability"
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.UpdatePropertiesCapability">
<property name="name" value="UpdateProperties"/>
<property name="private" value="true"/>
<property name="capabilities">
<list>
<ref bean="rmCreateModifyDestroyFoldersCapability"/>
<ref bean="rmCreateModifyDestroyFileplanMetadataCapability"/>
<ref bean="rmEditDeclaredRecordMetadataCapability"/>
<ref bean="rmEditNonRecordMetadataCapability"/>
<ref bean="rmCreateModifyRecordsInCuttoffFoldersCapability"/>
<ref bean="rmEditRecordMetadataCapability"/>
</list>
</property>
</bean>
<bean id="rmDeclare"
parent="compositeCapability">
<property name="name" value="Declare"/>
<property name="private" value="true"/>
<property name="capabilities">
<list>
<ref bean="rmDeclareRecordsCapability"/>
<ref bean="rmDeclareRecordsInClosedFoldersCapability"/>
</list>
</property>
</bean>
<bean id="rmWriteContent"
parent="declarativeCapability">
<property name="name" value="WriteContent"/>
<property name="private" value="true"/>
<property name="kinds">
<list>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.declared" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
<entry key="capabilityCondition.cutoff" value="false"/>
</map>
</property>
</bean>
<bean id="rmMove"
parent="compositeCapability">
<property name="name" value="Move"/>
<property name="private" value="true"/>
<property name="capabilities">
<list>
<ref bean="rmMoveRecordCategoryCapability"/>
<ref bean="rmMoveRecordFolderCapability"/>
<ref bean="rmMoveRecordsCapability"/>
</list>
</property>
</bean>
</beans>

View File

@@ -0,0 +1,241 @@
<?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="rmViewRecordsCapability"
parent="rmBaseCapability"
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.ViewRecordsCapability">
<property name="name" value="ViewRecords" />
</bean>
<bean id="rmUndeclareRecordsCapability"
parent="declarativeCapability">
<property name="name" value="UndeclareRecords"/>
<property name="permission" value="UndeclareRecords"/>
<property name="kinds">
<list>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.declared" value="true"/>
</map>
</property>
</bean>
<bean id="rmCreateModifyRecordsInCuttoffFoldersCapability"
parent="declarativeCapability">
<property name="name" value="CreateModifyRecordsInCutoffFolders"/>
<property name="permission" value="CreateModifyRecordsInCutoffFolders"/>
<property name="kinds">
<list>
<value>RECORD_FOLDER</value>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="true"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
</map>
</property>
</bean>
<bean id="rmFileCapability"
parent="declarativeCapability">
<property name="name" value="File"/>
<property name="private" value="true"/>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
<entry key="capabilityCondition.declared" value="false"/>
</map>
</property>
</bean>
<bean id="rmFileRecordsCapability"
parent="compositeCapability">
<property name="name" value="FileRecords" />
<property name="capabilities">
<list>
<ref bean="rmFileCapability"/>
<ref bean="rmCreateModifyRecordsInCuttoffFoldersCapability"/>
</list>
</property>
</bean>
<bean id="rmDeclareRecordsCapability"
parent="declarativeCapability">
<property name="name" value="DeclareRecords"/>
<property name="permission" value="DeclareRecords"/>
<property name="kinds">
<list>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
<entry key="capabilityCondition.declared" value="false"/>
</map>
</property>
</bean>
<bean id="rmDeclareRecordsInClosedFoldersCapability"
parent="declarativeCapability">
<property name="name" value="DeclareRecordsInClosedFolders"/>
<property name="permission" value="DeclareRecordsInClosedFolders"/>
<property name="kinds">
<list>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.closed" value="true"/>
<entry key="capabilityCondition.declared" value="false"/>
</map>
</property>
</bean>
<bean id="rmDeleteRecordsCapability"
parent="declarativeCapability">
<property name="name" value="DeleteRecords"/>
<property name="permission" value="DeleteRecords"/>
<property name="kinds">
<list>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.frozen" value="false"/>
</map>
</property>
</bean>
<bean id="rmDestroyRecordsCapability"
parent="declarativeCapability">
<property name="name" value="DestroyRecords"/>
<property name="permission" value="DestroyRecords"/>
<property name="kinds">
<list>
<value>RECORD_FOLDER</value>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.frozenOrFrozenChildren" value="false"/>
<entry key="capabilityCondition.destroyMayBeScheduled" value="true"/>
</map>
</property>
</bean>
<bean id="rmDestroyRecordsScheduledForDestructionCapability"
parent="declarativeCapability">
<property name="name" value="DestroyRecordsScheduledForDestruction"/>
<property name="permission" value="DestroyRecordsScheduledForDestruction"/>
<property name="conditions">
<map>
<entry key="capabilityCondition.frozenOrFrozenChildren" value="false"/>
<entry key="capabilityCondition.destroyIsScheduled" value="true"/>
</map>
</property>
</bean>
<bean id="rmEditDeclaredRecordMetadataCapability"
parent="declarativeCapability">
<property name="name" value="EditDeclaredRecordMetadata"/>
<property name="permission" value="EditDeclaredRecordMetadata"/>
<property name="kinds">
<list>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
<entry key="capabilityCondition.declared" value="true"/>
</map>
</property>
</bean>
<bean id="rmEditNonRecordMetadataCapability"
parent="declarativeCapability"
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.EditCapability">
<property name="name" value="EditNonRecordMetadata"/>
<property name="permission" value="EditNonRecordMetadata"/>
<property name="conditions">
<map>
<entry key="capabilityCondition.fileable" value="true"/>
</map>
</property>
</bean>
<bean id="rmEditRecordMetadataCapability"
parent="rmBaseCapability"
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.EditCapability">
<property name="name" value="EditRecordMetadata"/>
<property name="permission" value="EditRecordMetadata"/>
<property name="kinds">
<list>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
<entry key="capabilityCondition.declared" value="false"/>
</map>
</property>
</bean>
<bean id="rmMoveRecordsCapability"
parent="declarativeCapability" >
<property name="name" value="MoveRecords" />
<property name="permission" value="MoveRecords"/>
<property name="undetermined" value="true" />
<property name="kind" value="RECORD" />
<property name="conditions">
<map>
<entry key="capabilityCondition.frozen" value="false"/>
<!-- Do we care if it's cutoff or not? -->
</map>
</property>
<property name="targetCapability" ref="rmFileRecordsCapability"/>
</bean>
<bean id="rmUpgradeDowngradeAndDeclassifyRecordsCapability"
parent="declarativeCapability">
<property name="name" value="UpgradeDowngradeAndDeclassifyRecords"/>
<property name="permission" value="UpgradeDowngradeAndDeclassifyRecords"/>
<property name="conditions">
<map>
<entry key="capabilityCondition.frozen" value="false"/>
</map>
</property>
</bean>
</beans>

View File

@@ -0,0 +1,58 @@
<?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="rmCloseFoldersCapability"
parent="declarativeCapability">
<property name="name" value="CloseFolders"/>
<property name="permission" value="CloseFolders"/>
<property name="kinds">
<list>
<value>RECORD_FOLDER</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.frozenOrFrozenChildren" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
</map>
</property>
</bean>
<bean id="rmCreateModifyDestroyFoldersCapability"
parent="declarativeCapability">
<property name="name" value="CreateModifyDestroyFolders"/>
<property name="permission" value="CreateModifyDestroyFolders"/>
<property name="kinds">
<list>
<value>RECORD_CATEGORY</value>
<value>RECORD_FOLDER</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
</map>
</property>
</bean>
<bean id="rmMoveRecordFolderCapability"
parent="compositeCapability">
<property name="name" value="MoveRecordFolder"/>
<property name="private" value="true"/>
<property name="undetermined" value="true"/>
<property name="capabilities">
<list>
<ref bean="rmCreateModifyDestroyFoldersCapability"/>
</list>
</property>
<property name="targetCapability" ref="rmCreateModifyDestroyFoldersCapability"/>
</bean>
</beans>

View File

@@ -5,91 +5,8 @@
<beans>
<!-- Capability Conditions -->
<bean id="capabilityCondition.base"
abstract="true">
<property name="recordsManagementService" ref="recordsManagementService" />
<property name="permissionService" ref="PermissionService" />
<property name="nodeService" ref="NodeService" />
</bean>
<bean id="capabilityCondition.frozen"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.FrozenCapabilityCondition">
</bean>
<bean id="capabilityCondition.frozenOrFrozenChildren"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.FrozenCapabilityCondition">
<property name="checkChildren" value="true" />
</bean>
<bean id="capabilityCondition.frozenOrHold"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.FrozenOrHoldCondition">
</bean>
<bean id="capabilityCondition.cutoff"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.CutoffCapabilityCondition">
</bean>
<bean id="capabilityCondition.closed"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.ClosedCapabilityCondition">
</bean>
<bean id="capabilityCondition.declared"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.DeclaredCapabilityCondition">
</bean>
<bean id="capabilityCondition.filling"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.FillingCapabilityCondition">
</bean>
<bean id="capabilityCondition.transferred"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.TransferredCapabilityCondition">
</bean>
<bean id="capabilityCondition.destroyed"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.DestroyedCapabilityCondition">
</bean>
<bean id="capabilityCondition.vitalRecordOrFolder"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.VitalRecordOrFolderCapabilityCondition">
</bean>
<bean id="capabilityCondition.destroyMayBeScheduled"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.MayBeScheduledCapabilityCondition">
<property name="dispositionService" ref="DispositionService"/>
<property name="dispositionAction" value="destroy"/>
</bean>
<bean id="capabilityCondition.destroyIsScheduled"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.IsScheduledCapabilityCondition">
<property name="dispositionService" ref="DispositionService"/>
<property name="dispositionAction" value="destroy"/>
</bean>
<bean id="capabilityCondition.hasEvents"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.HasEventsCapabilityCondition">
<property name="dispositionService" ref="DispositionService"/>
</bean>
<bean id="capabilityCondition.fileable"
parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.FileableCapabilityCondition">
<property name="dictionaryService" ref="DictionaryService"/>
</bean>
<!-- Capability Conditions -->
<import resource="classpath:alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-condition-context.xml"/>
<!-- Capability beans -->
@@ -195,25 +112,6 @@
</property>
</bean>
<bean id="rmCloseFoldersCapability"
parent="declarativeCapability">
<property name="name" value="CloseFolders"/>
<property name="permission" value="CloseFolders"/>
<property name="kinds">
<list>
<value>RECORD_FOLDER</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.frozenOrFrozenChildren" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
</map>
</property>
</bean>
<bean id="rmCreateAndAssociateSelectionListsCapability"
parent="declarativeCapability">
<property name="name" value="CreateAndAssociateSelectionLists"/>
@@ -250,32 +148,24 @@
</property>
</bean>
<bean id="rmMoveRecordCategoryCapability"
parent="compositeCapability">
<property name="name" value="MoveRecordCategory"/>
<property name="private" value="true"/>
<property name="undetermined" value="true"/>
<property name="capabilities">
<list>
<ref bean="rmCreateModifyDestroyFileplanMetadataCapability"/>
</list>
</property>
<property name="targetCapability" ref="rmCreateModifyDestroyFileplanMetadataCapability"/>
</bean>
<bean id="rmCreateModifyDestroyFileplanTypesCapability"
parent="declarativeCapability">
<property name="name" value="CreateModifyDestroyFileplanTypes" />
<property name="permission" value="CreateModifyDestroyFileplanTypes" />
</bean>
<bean id="rmCreateModifyDestroyFoldersCapability"
parent="declarativeCapability">
<property name="name" value="CreateModifyDestroyFolders"/>
<property name="permission" value="CreateModifyDestroyFolders"/>
<property name="kinds">
<list>
<value>RECORD_CATEGORY</value>
<value>RECORD_FOLDER</value>
<!-- <value>RECORD</value> -->
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.frozenOrFrozenChildren" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
</map>
</property>
</bean>
<bean id="rmCreateModifyDestroyRecordTypesCapability"
parent="declarativeCapability">
@@ -307,26 +197,6 @@
<property name="permission" value="CreateModifyDestroyUsersAndGroups" />
</bean>
<bean id="rmCreateModifyRecordsInCuttoffFoldersCapability"
parent="declarativeCapability">
<property name="name" value="CreateModifyRecordsInCutoffFolders"/>
<property name="permission" value="CreateModifyRecordsInCutoffFolders"/>
<property name="kinds">
<list>
<value>RECORD_FOLDER</value>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="true"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
</map>
</property>
</bean>
<bean id="rmCycleVitalRecordsCapability"
parent="declarativeCapability">
<property name="name" value="CycleVitalRecords"/>
@@ -354,46 +224,6 @@
<property name="permission" value="DeclareAuditAsRecord" />
</bean>
<bean id="rmDeclareRecordsCapability"
parent="declarativeCapability">
<property name="name" value="DeclareRecords"/>
<property name="permission" value="DeclareRecords"/>
<property name="kinds">
<list>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
<entry key="capabilityCondition.declared" value="false"/>
</map>
</property>
</bean>
<bean id="rmDeclareRecordsInClosedFoldersCapability"
parent="declarativeCapability">
<property name="name" value="DeclareRecordsInClosedFolders"/>
<property name="permission" value="DeclareRecordsInClosedFolders"/>
<property name="kinds">
<list>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.closed" value="true"/>
<entry key="capabilityCondition.declared" value="false"/>
</map>
</property>
</bean>
<bean id="rmDeleteAuditCapability"
parent="declarativeCapability">
<property name="name" value="DeleteAudit" />
@@ -413,53 +243,6 @@
</map>
</property>
</bean>
<bean id="rmDeleteRecordsCapability"
parent="declarativeCapability">
<property name="name" value="DeleteRecords"/>
<property name="permission" value="DeleteRecords"/>
<property name="kinds">
<list>
<!-- <value>RECORD_FOLDER</value> -->
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.frozen" value="false"/>
</map>
</property>
</bean>
<bean id="rmDestroyRecordsCapability"
parent="declarativeCapability">
<property name="name" value="DestroyRecords"/>
<property name="permission" value="DestroyRecords"/>
<property name="kinds">
<list>
<value>RECORD_FOLDER</value>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.frozenOrFrozenChildren" value="false"/>
<entry key="capabilityCondition.destroyMayBeScheduled" value="true"/>
</map>
</property>
</bean>
<bean id="rmDestroyRecordsScheduledForDestructionCapability"
parent="declarativeCapability">
<property name="name" value="DestroyRecordsScheduledForDestruction"/>
<property name="permission" value="DestroyRecordsScheduledForDestruction"/>
<property name="conditions">
<map>
<entry key="capabilityCondition.frozenOrFrozenChildren" value="false"/>
<entry key="capabilityCondition.destroyIsScheduled" value="true"/>
</map>
</property>
</bean>
<bean id="rmDisplayRightsReportCapability"
parent="declarativeCapability">
@@ -467,59 +250,6 @@
<property name="permission" value="DisplayRightsReport" />
</bean>
<bean id="rmEditDeclaredRecordMetadataCapability"
parent="declarativeCapability">
<property name="name" value="EditDeclaredRecordMetadata"/>
<property name="permission" value="EditDeclaredRecordMetadata"/>
<property name="kinds">
<list>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
<entry key="capabilityCondition.declared" value="true"/>
</map>
</property>
</bean>
<bean id="rmEditNonRecordMetadataCapability"
parent="declarativeCapability"
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.EditCapability">
<property name="name" value="EditNonRecordMetadata"/>
<property name="permission" value="EditNonRecordMetadata"/>
<property name="conditions">
<map>
<entry key="capabilityCondition.fileable" value="true"/>
</map>
</property>
</bean>
<bean id="rmEditRecordMetadataCapability"
parent="rmBaseCapability"
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.EditCapability">
<property name="name" value="EditRecordMetadata"/>
<property name="permission" value="EditRecordMetadata"/>
<property name="kinds">
<list>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
<entry key="capabilityCondition.declared" value="false"/>
</map>
</property>
</bean>
<bean id="rmEditSelectionListsCapability"
parent="declarativeCapability">
<property name="name" value="EditSelectionLists" />
@@ -554,33 +284,7 @@
<entry key="capabilityCondition.frozen" value="false"/>
</map>
</property>
</bean>
<bean id="rmFileCapability"
parent="declarativeCapability">
<property name="name" value="File"/>
<property name="private" value="true"/>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
<entry key="capabilityCondition.declared" value="false"/>
</map>
</property>
</bean>
<bean id="rmFileRecordsCapability"
parent="compositeCapability">
<property name="name" value="FileRecords" />
<property name="capabilities">
<list>
<ref bean="rmFileCapability"/>
<ref bean="rmCreateModifyRecordsInCuttoffFoldersCapability"/>
</list>
</property>
</bean>
</bean>
<bean id="rmMakeOptionalPropertiesMandatoryCapability"
parent="declarativeCapability">
@@ -629,12 +333,6 @@
<property name="permission" value="MapEmailMetadata" />
</bean>
<bean id="rmMoveRecordsCapability"
parent="rmBaseCapability"
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.MoveRecordsCapability">
<property name="name" value="MoveRecords" />
</bean>
<bean id="rmPasswordControlCapability"
parent="declarativeCapability">
<property name="name" value="PasswordControl" />
@@ -699,24 +397,6 @@
</property>
</bean>
<bean id="rmUndeclareRecordsCapability"
parent="declarativeCapability">
<property name="name" value="UndeclareRecords"/>
<property name="permission" value="UndeclareRecords"/>
<property name="kinds">
<list>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.declared" value="true"/>
</map>
</property>
</bean>
<bean id="rmUnfreezeCapability"
parent="declarativeCapability">
<property name="name" value="Unfreeze"/>
@@ -763,23 +443,6 @@
</property>
</bean>
<bean id="rmUpgradeDowngradeAndDeclassifyRecordsCapability"
parent="declarativeCapability">
<property name="name" value="UpgradeDowngradeAndDeclassifyRecords"/>
<property name="permission" value="UpgradeDowngradeAndDeclassifyRecords"/>
<property name="conditions">
<map>
<entry key="capabilityCondition.frozen" value="false"/>
</map>
</property>
</bean>
<bean id="rmViewRecordsCapability"
parent="rmBaseCapability"
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.ViewRecordsCapability">
<property name="name" value="ViewRecords" />
</bean>
<bean id="rmViewUpdateReasonsForFreezeCapability"
parent="declarativeCapability">
<property name="name" value="ViewUpdateReasonsForFreeze"/>
@@ -791,92 +454,13 @@
</property>
</bean>
<bean id="rmCreate"
parent="rmBaseCapability"
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.CreateCapability">
<property name="name" value="Create"/>
<property name="private" value="true"/>
</bean>
<!-- Record Folder capabilities -->
<import resource="classpath:alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-recordfolder-context.xml"/>
<bean id="rmDelete"
parent="compositeCapability">
<property name="name" value="Delete"/>
<property name="private" value="true"/>
<property name="capabilities">
<list>
<ref bean="rmDestroyRecordsScheduledForDestructionCapability"/>
<ref bean="rmDestroyRecordsCapability"/>
<ref bean="rmDeleteRecordsCapability"/>
<ref bean="rmCreateModifyDestroyFileplanMetadataCapability"/>
<ref bean="rmCreateModifyDestroyFoldersCapability"/>
</list>
</property>
</bean>
<!-- Record capabilities -->
<import resource="classpath:alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-record-context.xml"/>
<bean id="rmUpdate"
parent="compositeCapability"
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.UpdateCapability">
<property name="name" value="Update"/>
<property name="private" value="true"/>
<property name="capabilities">
<list>
<ref bean="rmCreateModifyDestroyFoldersCapability"/>
<ref bean="rmCreateModifyDestroyFileplanMetadataCapability"/>
<ref bean="rmEditDeclaredRecordMetadataCapability"/>
<ref bean="rmEditNonRecordMetadataCapability"/>
<ref bean="rmCreateModifyRecordsInCuttoffFoldersCapability"/>
<ref bean="rmEditRecordMetadataCapability"/>
</list>
</property>
</bean>
<bean id="rmUpdateProperties"
parent="compositeCapability"
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.UpdatePropertiesCapability">
<property name="name" value="UpdateProperties"/>
<property name="private" value="true"/>
<property name="capabilities">
<list>
<ref bean="rmCreateModifyDestroyFoldersCapability"/>
<ref bean="rmCreateModifyDestroyFileplanMetadataCapability"/>
<ref bean="rmEditDeclaredRecordMetadataCapability"/>
<ref bean="rmEditNonRecordMetadataCapability"/>
<ref bean="rmCreateModifyRecordsInCuttoffFoldersCapability"/>
<ref bean="rmEditRecordMetadataCapability"/>
</list>
</property>
</bean>
<bean id="rmDeclare"
parent="compositeCapability">
<property name="name" value="Declare"/>
<property name="private" value="true"/>
<property name="capabilities">
<list>
<ref bean="rmDeclareRecordsCapability"/>
<ref bean="rmDeclareRecordsInClosedFoldersCapability"/>
</list>
</property>
</bean>
<bean id="rmWriteContent"
parent="declarativeCapability">
<property name="name" value="WriteContent"/>
<property name="private" value="true"/>
<property name="kinds">
<list>
<value>RECORD</value>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.declared" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
<entry key="capabilityCondition.cutoff" value="false"/>
</map>
</property>
</bean>
<!-- Group capabilities -->
<import resource="classpath:alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-group-context.xml"/>
</beans>

View File

@@ -428,37 +428,7 @@
<property name="permissionService" ref="PermissionService"/>
<property name="nodeService" ref="NodeService"/>
<property name="policyComponent" ref="policyComponent"/>
<property name="ownableService" ref="OwnableService"/>
<property name="recordsManagementService" ref="RecordsManagementService"/>
<property name="capabilitySets">
<map>
<entry key="doclibBrowse">
<list>
<value>Create</value>
<value>UpdateProperties</value>
<value>ManageAccessRights</value>
<value>Delete</value>
<value>AccessAudit</value>
<value>CycleVitalRecords</value>
<value>ApproveRecordsScheduledForCutoff</value>
<value>DestroyRecordsCapability</value>
<value>DestroyRecordsScheduledForDestruction</value>
<value>AuthorizeAllTransfers</value>
<value>AuthorizeNominatedTransfers</value>
<value>CreateModifyRecordsInCutoffFolders</value>
<value>ManuallyChangeDispositionDates</value>
<value>PlanningReviewCycles</value>
<value>UndeclareRecords</value>
<value>Declare</value>
<value>Unfreeze</value>
<value>ViewUpdateReasonsForFreeze</value>
<value>CloseFolders</value>
<value>ReOpenFolders</value>
<value>ExtendRetentionPeriodOrFreeze</value>
</list>
</entry>
</map>
</property>
<property name="recordsManagementService" ref="RecordsManagementService"/>
</bean>
<bean id="RecordsManagementSecurityService" class="org.springframework.aop.framework.ProxyFactoryBean">
@@ -503,8 +473,6 @@
<![CDATA[
org.alfresco.module.org_alfresco_module_rm.security.RecordsManagementSecurityService.getProtectedAspects=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.security.RecordsManagementSecurityService.getProtectedProperties=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.security.RecordsManagementSecurityService.getCapabilities=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.security.RecordsManagementSecurityService.getCapability=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.security.RecordsManagementSecurityService.setPermission=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.security.RecordsManagementSecurityService.deletePermission=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.security.RecordsManagementSecurityService.bootstrapDefaultRoles=RM_ALLOW

View File

@@ -230,17 +230,37 @@
<!-- <property name="capability" value="Delete"/> -->
</bean>
<bean id="jsonConversionComponent.moveAction"
<bean id="jsonConversionComponent.moveRecordAction"
parent="jsonConversionComponent.baseAction">
<property name="name" value="move"/>
<property name="name" value="moveRecord"/>
<property name="kinds">
<set>
<value>RECORD_CATEGORY</value>
<value>RECORD_FOLDER</value>
<value>RECORD</value>
</set>
</property>
<!-- <property name="capability" value="Delete"/> -->
<property name="capability" value="MoveRecords"/>
</bean>
<bean id="jsonConversionComponent.moveRecordFolderAction"
parent="jsonConversionComponent.baseAction">
<property name="name" value="moveRecordFolder"/>
<property name="kinds">
<set>
<value>RECORD_FOLDER</value>
</set>
</property>
<property name="capability" value="MoveRecordFolder"/>
</bean>
<bean id="jsonConversionComponent.moveRecordCategoryAction"
parent="jsonConversionComponent.baseAction">
<property name="name" value="moveRecordCategory"/>
<property name="kinds">
<set>
<value>RECORD_CATEGORY</value>
</set>
</property>
<property name="capability" value="MoveRecordCategory"/>
</bean>
<bean id="jsonConversionComponent.fileToAction"

View File

@@ -206,6 +206,7 @@
<bean id="webscript.org.alfresco.rma.admin.rmrole.rmroles.post" class="org.alfresco.module.org_alfresco_module_rm.script.admin.RmRolesPost" parent="webscript">
<property name="recordsManagementService" ref="RecordsManagementService"/>
<property name="recordsManagementSecurityService" ref="RecordsManagementSecurityService"/>
<property name="capabilityService" ref="CapabilityService" />
</bean>
<bean id="webscript.org.alfresco.rma.admin.rmrole.rmrole.get" class="org.alfresco.module.org_alfresco_module_rm.script.admin.RmRoleGet" parent="webscript">
@@ -216,6 +217,7 @@
<bean id="webscript.org.alfresco.rma.admin.rmrole.rmrole.put" class="org.alfresco.module.org_alfresco_module_rm.script.admin.RmRolePut" parent="webscript">
<property name="recordsManagementService" ref="RecordsManagementService"/>
<property name="recordsManagementSecurityService" ref="RecordsManagementSecurityService"/>
<property name="capabilityService" ref="CapabilityService" />
</bean>
<bean id="webscript.org.alfresco.rma.admin.rmrole.rmrole.delete" class="org.alfresco.module.org_alfresco_module_rm.script.admin.RmRoleDelete" parent="webscript">