MNT-18502 - filtered out dod properties if the node is not a dod record

This commit is contained in:
Ana Bozianu
2017-12-08 07:53:22 +00:00
parent a265daf8f1
commit 3c72bbc0f9
2 changed files with 191 additions and 1 deletions

View File

@@ -33,6 +33,7 @@ import java.util.Map;
import java.util.Set;
import org.alfresco.model.ContentModel;
import org.alfresco.module.org_alfresco_module_rm.dod5015.DOD5015Model;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
@@ -69,7 +70,13 @@ public class RFC822MetadataExtracter extends org.alfresco.repo.content.metadata.
protected void filterSystemProperties(Map<QName, Serializable> systemProperties, Map<QName, Serializable> targetProperties)
{
NodeRef nodeRef = getNodeRef(targetProperties);
if (nodeRef == null || !nodeService.hasAspect(nodeRef, RecordsManagementModel.ASPECT_RECORD))
if(nodeRef == null)
{
return;
}
// Remove record properties from non-record nodes
if (!nodeService.hasAspect(nodeRef, RecordsManagementModel.ASPECT_RECORD))
{
// Remove all rm namespace properties from the system map
Map<QName, Serializable> clone = new HashMap<QName, Serializable>(systemProperties);
@@ -81,6 +88,20 @@ public class RFC822MetadataExtracter extends org.alfresco.repo.content.metadata.
}
}
}
// Remove dod5015 properties from non-dod5015 nodes
if (!nodeService.hasAspect(nodeRef, DOD5015Model.ASPECT_DOD_5015_RECORD))
{
// Remove all dod5015 namespace properties from the system map
Map<QName, Serializable> clone = new HashMap<>(systemProperties);
for (QName propName : clone.keySet())
{
if (DOD5015Model.DOD_URI.equals(propName.getNamespaceURI()))
{
systemProperties.remove(propName);
}
}
}
}
/**