mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V21 to HEAD:
62861: RM-1261: Records/Folders scheduled for destruction can be deleted by user without required capabilities RM-1258: It's possible to edit, delete and create (via copy) new category without "Create Modify Destroy File Plan Metadata" capability 62862: RM-1267: Delete Record capability is needed to delete the reference git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@62863 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -19,11 +19,9 @@
|
|||||||
<property name="private" value="true"/>
|
<property name="private" value="true"/>
|
||||||
<property name="capabilities">
|
<property name="capabilities">
|
||||||
<list>
|
<list>
|
||||||
<ref bean="rmDestroyRecordsScheduledForDestructionCapability"/>
|
|
||||||
<ref bean="rmDestroyRecordsCapability"/>
|
|
||||||
<ref bean="rmDeleteRecordsCapability"/>
|
<ref bean="rmDeleteRecordsCapability"/>
|
||||||
<ref bean="rmCreateModifyDestroyFileplanMetadataCapability"/>
|
<ref bean="rmCreateModifyDestroyFileplanMetadataCapability"/>
|
||||||
<ref bean="rmCreateModifyDestroyFoldersCapability"/>
|
<ref bean="rmDeleteRecordFolderCapability"/>
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
@@ -35,7 +33,7 @@
|
|||||||
<property name="private" value="true"/>
|
<property name="private" value="true"/>
|
||||||
<property name="capabilities">
|
<property name="capabilities">
|
||||||
<list>
|
<list>
|
||||||
<ref bean="rmCreateModifyDestroyFoldersCapability"/>
|
<ref bean="rmModifyRecordFolderCapability"/>
|
||||||
<ref bean="rmCreateModifyDestroyFileplanMetadataCapability"/>
|
<ref bean="rmCreateModifyDestroyFileplanMetadataCapability"/>
|
||||||
<ref bean="rmEditDeclaredRecordMetadataCapability"/>
|
<ref bean="rmEditDeclaredRecordMetadataCapability"/>
|
||||||
<ref bean="rmEditNonRecordMetadataCapability"/>
|
<ref bean="rmEditNonRecordMetadataCapability"/>
|
||||||
@@ -52,7 +50,7 @@
|
|||||||
<property name="private" value="true"/>
|
<property name="private" value="true"/>
|
||||||
<property name="capabilities">
|
<property name="capabilities">
|
||||||
<list>
|
<list>
|
||||||
<ref bean="rmCreateModifyDestroyFoldersCapability"/>
|
<ref bean="rmModifyRecordFolderCapability"/>
|
||||||
<ref bean="rmCreateModifyDestroyFileplanMetadataCapability"/>
|
<ref bean="rmCreateModifyDestroyFileplanMetadataCapability"/>
|
||||||
<ref bean="rmEditDeclaredRecordMetadataCapability"/>
|
<ref bean="rmEditDeclaredRecordMetadataCapability"/>
|
||||||
<ref bean="rmEditNonRecordMetadataCapability"/>
|
<ref bean="rmEditNonRecordMetadataCapability"/>
|
||||||
|
@@ -25,25 +25,21 @@
|
|||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="rmCreateModifyDestroyFoldersCapability"
|
<bean id="rmCreateModifyDestroyFoldersCapability"
|
||||||
parent="declarativeCapability">
|
parent="compositeCapability">
|
||||||
|
|
||||||
<property name="name" value="CreateModifyDestroyFolders"/>
|
<property name="name" value="CreateModifyDestroyFolders"/>
|
||||||
<property name="permission" value="CreateModifyDestroyFolders"/>
|
<property name="permission" value="CreateModifyDestroyFolders"/>
|
||||||
<property name="kinds">
|
|
||||||
|
<property name="capabilities">
|
||||||
<list>
|
<list>
|
||||||
<value>RECORD_CATEGORY</value>
|
<ref bean="rmCreateRecordFolderCapability"/>
|
||||||
<value>RECORD_FOLDER</value>
|
<ref bean="rmModifyRecordFolderCapability"/>
|
||||||
|
<ref bean="rmDeleteRecordFolderCapability"/>
|
||||||
<value>UNFILED_RECORD_CONTAINER</value>
|
<value>UNFILED_RECORD_CONTAINER</value>
|
||||||
<value>UNFILED_RECORD_CONTAINER_CHILD</value>
|
<value>UNFILED_RECORD_CONTAINER_CHILD</value>
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</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>
|
|
||||||
<property name="group"><ref bean="folderControlGroup"/></property>
|
<property name="group"><ref bean="folderControlGroup"/></property>
|
||||||
<property name="index" value="20" />
|
<property name="index" value="20" />
|
||||||
</bean>
|
</bean>
|
||||||
@@ -71,6 +67,63 @@
|
|||||||
|
|
||||||
<!-- Unassignable -->
|
<!-- Unassignable -->
|
||||||
|
|
||||||
|
<bean id="rmCreateRecordFolderCapability"
|
||||||
|
parent="declarativeCapability">
|
||||||
|
<property name="name" value="CreateRecordFolder"/>
|
||||||
|
<property name="permission" value="CreateModifyDestroyFolders"/>
|
||||||
|
<property name="private" value="true"/>
|
||||||
|
<property name="kinds">
|
||||||
|
<list>
|
||||||
|
<value>RECORD_CATEGORY</value>
|
||||||
|
</list>
|
||||||
|
</property>
|
||||||
|
<property name="conditions">
|
||||||
|
<map>
|
||||||
|
<entry key="capabilityCondition.filling" value="true"/>
|
||||||
|
</map>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="rmModifyRecordFolderCapability"
|
||||||
|
parent="declarativeCapability">
|
||||||
|
<property name="name" value="ModifyRecordFolder"/>
|
||||||
|
<property name="private" value="true"/>
|
||||||
|
<property name="permission" value="CreateModifyDestroyFolders"/>
|
||||||
|
<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.frozen" value="false"/>
|
||||||
|
<entry key="capabilityCondition.closed" value="false"/>
|
||||||
|
</map>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="rmDeleteRecordFolderCapability"
|
||||||
|
parent="declarativeCapability">
|
||||||
|
<property name="name" value="DeleteRecordFolder"/>
|
||||||
|
<property name="private" value="true"/>
|
||||||
|
<property name="permission" value="CreateModifyDestroyFolders"/>
|
||||||
|
<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.frozen" value="false"/>
|
||||||
|
<entry key="capabilityCondition.closed" value="false"/>
|
||||||
|
</map>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
<bean id="rmMoveRecordFolderCapability"
|
<bean id="rmMoveRecordFolderCapability"
|
||||||
parent="compositeCapability">
|
parent="compositeCapability">
|
||||||
<property name="name" value="MoveRecordFolder"/>
|
<property name="name" value="MoveRecordFolder"/>
|
||||||
|
@@ -50,7 +50,7 @@ capability.UpdateTriggerDates.title=Update Trigger Dates
|
|||||||
capability.ManuallyChangeDispositionDates.title=Manually Change Disposition Dates
|
capability.ManuallyChangeDispositionDates.title=Manually Change Disposition Dates
|
||||||
capability.AuthorizeNominatedTransfers.title=Authorize Nominated Transfers
|
capability.AuthorizeNominatedTransfers.title=Authorize Nominated Transfers
|
||||||
capability.AuthorizeAllTransfers.title=Authorize All Transfers
|
capability.AuthorizeAllTransfers.title=Authorize All Transfers
|
||||||
capability.DestroyRecordsScheduledForDestruction.title=Destroy Records Scheduled for Destruction
|
capability.DestroyRecordsScheduledForDestruction.title=Destroy Record or Record Folder Scheduled for Destruction
|
||||||
capability.DestroyRecords.title=Destroy Records
|
capability.DestroyRecords.title=Destroy Records
|
||||||
capability.DeleteRecords.title=Delete Records
|
capability.DeleteRecords.title=Delete Records
|
||||||
capability.TriggerAnEvent.title=Trigger An Event
|
capability.TriggerAnEvent.title=Trigger An Event
|
||||||
|
@@ -1149,7 +1149,7 @@ public class RecordsManagementAdminServiceImpl implements RecordsManagementAdmin
|
|||||||
/**
|
/**
|
||||||
* @see org.alfresco.module.org_alfresco_module_rm.admin.RecordsManagementAdminService#removeCustomReference(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.namespace.QName)
|
* @see org.alfresco.module.org_alfresco_module_rm.admin.RecordsManagementAdminService#removeCustomReference(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.namespace.QName)
|
||||||
*/
|
*/
|
||||||
public void removeCustomReference(NodeRef fromNode, NodeRef toNode, QName assocId)
|
public void removeCustomReference(final NodeRef fromNode, final NodeRef toNode, final QName assocId)
|
||||||
{
|
{
|
||||||
Map<QName, AssociationDefinition> availableAssocs = this.getCustomReferenceDefinitions();
|
Map<QName, AssociationDefinition> availableAssocs = this.getCustomReferenceDefinitions();
|
||||||
|
|
||||||
@@ -1166,14 +1166,23 @@ public class RecordsManagementAdminServiceImpl implements RecordsManagementAdmin
|
|||||||
// TODO: Ask for a more efficient method such as
|
// TODO: Ask for a more efficient method such as
|
||||||
// nodeService.removeChildAssociation(fromNode, toNode, chRef.getTypeQName(), null);
|
// nodeService.removeChildAssociation(fromNode, toNode, chRef.getTypeQName(), null);
|
||||||
|
|
||||||
List<ChildAssociationRef> children = nodeService.getChildAssocs(fromNode);
|
AuthenticationUtil.runAsSystem(new RunAsWork<Void>()
|
||||||
for (ChildAssociationRef chRef : children)
|
{
|
||||||
{
|
@Override
|
||||||
if (assocId.equals(chRef.getTypeQName()) && chRef.getChildRef().equals(toNode))
|
public Void doWork() throws Exception
|
||||||
{
|
{
|
||||||
nodeService.removeChildAssociation(chRef);
|
List<ChildAssociationRef> children = nodeService.getChildAssocs(fromNode);
|
||||||
}
|
for (ChildAssociationRef chRef : children)
|
||||||
}
|
{
|
||||||
|
if (assocId.equals(chRef.getTypeQName()) && chRef.getChildRef().equals(toNode))
|
||||||
|
{
|
||||||
|
nodeService.removeChildAssociation(chRef);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user