RM-5236 Refactor common code when getting node name.

This commit is contained in:
Tom Page
2018-04-26 15:49:07 +01:00
parent 04686978b3
commit b37100c477

View File

@@ -27,6 +27,9 @@
package org.alfresco.module.org_alfresco_module_rm.audit;
import static org.alfresco.model.ContentModel.PROP_AUTHORITY_DISPLAY_NAME;
import static org.alfresco.model.ContentModel.PROP_AUTHORITY_NAME;
import static org.alfresco.model.ContentModel.PROP_USERNAME;
import static org.alfresco.module.org_alfresco_module_rm.audit.event.UserGroupMembershipUtils.PARENT_GROUP;
import static org.alfresco.module.org_alfresco_module_rm.dod5015.DOD5015Model.TYPE_DOD_5015_SITE;
import static org.alfresco.module.org_alfresco_module_rm.model.rma.type.RmSiteType.DEFAULT_SITE_NAME;
@@ -1580,61 +1583,35 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
switch (entry.getEvent())
{
case "Create Person":
if (entry.getAfterProperties() != null)
{
nodeName = (String) entry.getAfterProperties().get(ContentModel.PROP_USERNAME);
}
nodeName = getNodeName(entry.getAfterProperties(), PROP_USERNAME);
// This is needed as older audit events (pre-2.7) were created without PROP_USERNAME being set.
NodeRef nodeRef = entry.getNodeRef();
if (nodeName == null && nodeService.exists(nodeRef))
{
nodeName = (String) nodeService.getProperty(nodeRef, ContentModel.PROP_USERNAME);
nodeName = (String) nodeService.getProperty(nodeRef, PROP_USERNAME);
}
json.put("createPerson", true);
break;
case "Delete Person":
if (entry.getBeforeProperties() != null)
{
nodeName = (String) entry.getBeforeProperties().get(ContentModel.PROP_USERNAME);
}
nodeName = getNodeName(entry.getBeforeProperties(), PROP_USERNAME);
json.put("deletePerson", true);
break;
case "Create User Group":
if (entry.getAfterProperties() != null)
{
nodeName = (String) entry.getAfterProperties().get(ContentModel.PROP_AUTHORITY_DISPLAY_NAME);
if (isBlank(nodeName))
{
nodeName = (String) entry.getAfterProperties().get(ContentModel.PROP_AUTHORITY_NAME);
}
}
nodeName = getNodeName(entry.getAfterProperties(), PROP_AUTHORITY_DISPLAY_NAME, PROP_AUTHORITY_NAME);
break;
case "Delete User Group":
if (entry.getBeforeProperties() != null)
{
nodeName = (String) entry.getBeforeProperties().get(ContentModel.PROP_AUTHORITY_DISPLAY_NAME);
if (isBlank(nodeName))
{
nodeName = (String) entry.getBeforeProperties().get(ContentModel.PROP_AUTHORITY_NAME);
}
}
nodeName = getNodeName(entry.getBeforeProperties(), PROP_AUTHORITY_DISPLAY_NAME, PROP_AUTHORITY_NAME);
break;
case "Add To User Group":
if (entry.getAfterProperties() != null)
{
nodeName = (String) entry.getAfterProperties().get(PARENT_GROUP);
}
nodeName = getNodeName(entry.getAfterProperties(), PARENT_GROUP);
break;
case "Remove From User Group":
if (entry.getBeforeProperties() != null)
{
nodeName = (String) entry.getBeforeProperties().get(PARENT_GROUP);
}
nodeName = getNodeName(entry.getBeforeProperties(), PARENT_GROUP);
break;
default:
@@ -1645,6 +1622,26 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
json.put("nodeName", nodeName == null ? "" : nodeName);
}
/**
* Get a node name using the first non-blank value from a properties object using a list of property names.
*
* @param properties The properties object.
* @param propertyNames The names of the properties to use. Return the first value that is not empty.
* @return The value of the property, or null if it's not there.
*/
private String getNodeName(Map<QName, Serializable> properties, QName... propertyNames)
{
for (QName propertyName : propertyNames)
{
String nodeName = (properties != null ? (String) properties.get(propertyName) : null);
if (!isBlank(nodeName))
{
return nodeName;
}
}
return null;
}
/**
* Helper method to convert value to MLText
*