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; 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.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.dod5015.DOD5015Model.TYPE_DOD_5015_SITE;
import static org.alfresco.module.org_alfresco_module_rm.model.rma.type.RmSiteType.DEFAULT_SITE_NAME; 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()) switch (entry.getEvent())
{ {
case "Create Person": case "Create Person":
if (entry.getAfterProperties() != null) nodeName = getNodeName(entry.getAfterProperties(), PROP_USERNAME);
{
nodeName = (String) entry.getAfterProperties().get(ContentModel.PROP_USERNAME);
}
// This is needed as older audit events (pre-2.7) were created without PROP_USERNAME being set. // This is needed as older audit events (pre-2.7) were created without PROP_USERNAME being set.
NodeRef nodeRef = entry.getNodeRef(); NodeRef nodeRef = entry.getNodeRef();
if (nodeName == null && nodeService.exists(nodeRef)) 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); json.put("createPerson", true);
break; break;
case "Delete Person": case "Delete Person":
if (entry.getBeforeProperties() != null) nodeName = getNodeName(entry.getBeforeProperties(), PROP_USERNAME);
{
nodeName = (String) entry.getBeforeProperties().get(ContentModel.PROP_USERNAME);
}
json.put("deletePerson", true); json.put("deletePerson", true);
break; break;
case "Create User Group": case "Create User Group":
if (entry.getAfterProperties() != null) nodeName = getNodeName(entry.getAfterProperties(), PROP_AUTHORITY_DISPLAY_NAME, PROP_AUTHORITY_NAME);
{
nodeName = (String) entry.getAfterProperties().get(ContentModel.PROP_AUTHORITY_DISPLAY_NAME);
if (isBlank(nodeName))
{
nodeName = (String) entry.getAfterProperties().get(ContentModel.PROP_AUTHORITY_NAME);
}
}
break; break;
case "Delete User Group": case "Delete User Group":
if (entry.getBeforeProperties() != null) nodeName = getNodeName(entry.getBeforeProperties(), PROP_AUTHORITY_DISPLAY_NAME, PROP_AUTHORITY_NAME);
{
nodeName = (String) entry.getBeforeProperties().get(ContentModel.PROP_AUTHORITY_DISPLAY_NAME);
if (isBlank(nodeName))
{
nodeName = (String) entry.getBeforeProperties().get(ContentModel.PROP_AUTHORITY_NAME);
}
}
break; break;
case "Add To User Group": case "Add To User Group":
if (entry.getAfterProperties() != null) nodeName = getNodeName(entry.getAfterProperties(), PARENT_GROUP);
{
nodeName = (String) entry.getAfterProperties().get(PARENT_GROUP);
}
break; break;
case "Remove From User Group": case "Remove From User Group":
if (entry.getBeforeProperties() != null) nodeName = getNodeName(entry.getBeforeProperties(), PARENT_GROUP);
{
nodeName = (String) entry.getBeforeProperties().get(PARENT_GROUP);
}
break; break;
default: default:
@@ -1645,6 +1622,26 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
json.put("nodeName", nodeName == null ? "" : nodeName); 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 * Helper method to convert value to MLText
* *