RM-1027: Can't copy closed folder.

* then you copy a closed record folder the copy will not be closed
 * ensured that disposition details are freshed when copying a record folder



git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@56274 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Roy Wetherall
2013-10-03 01:45:40 +00:00
parent b1c2d05a75
commit fafb5f9d80
3 changed files with 147 additions and 2 deletions

View File

@@ -279,6 +279,21 @@ public class RecordCopyBehaviours implements RecordsManagementModel
{
final NodeService nodeService = rmServiceRegistry.getNodeService();
@Override
public Map<QName, Serializable> getCopyProperties(QName classRef, CopyDetails copyDetails, Map<QName, Serializable> properties)
{
Map<QName, Serializable> sourceProperties = super.getCopyProperties(classRef, copyDetails, properties);
// ensure that the 'closed' status of the record folder is not copied
if (sourceProperties.containsKey(PROP_IS_CLOSED))
{
sourceProperties.remove(PROP_IS_CLOSED);
}
return sourceProperties;
}
/**
* If the targets parent is a Record Folder -- Do Not Allow Copy
*
@@ -289,7 +304,18 @@ public class RecordCopyBehaviours implements RecordsManagementModel
@Override
public boolean getMustCopy(QName classQName, CopyDetails copyDetails)
{
return nodeService.getType(copyDetails.getTargetParentNodeRef()).equals(TYPE_RECORD_FOLDER) ? false : true;
boolean result = true;
if (nodeService.getType(copyDetails.getTargetParentNodeRef()).equals(TYPE_RECORD_FOLDER) == true)
{
result = false;
}
else if (unwantedAspects.contains(classQName) == true)
{
result = false;
}
return result;
}
};
}