diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-audit-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-audit-context.xml
index 7b5f03018e..2a62aa660c 100644
--- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-audit-context.xml
+++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-audit-context.xml
@@ -53,6 +53,7 @@
+
@@ -65,6 +66,7 @@
+
diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditServiceImpl.java
index 4638409234..e45b86dee2 100644
--- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditServiceImpl.java
+++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/RecordsManagementAuditServiceImpl.java
@@ -1503,31 +1503,7 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
json.put("fullName", entry.getFullName() == null ? "": entry.getFullName());
json.put("nodeRef", entry.getNodeRef() == null ? "": entry.getNodeRef());
- // TODO: Find another way for checking the event
- if (entry.getEvent().equals("Create Person") && entry.getNodeRef() != null)
- {
- NodeRef nodeRef = entry.getNodeRef();
- String userName = null;
- if(nodeService.exists(nodeRef))
- {
- userName = (String)nodeService.getProperty(nodeRef, ContentModel.PROP_USERNAME);
- }
- json.put("nodeName", userName == null ? "": userName);
- json.put("createPerson", true);
- }
- else if (entry.getEvent().equals("Delete Person") && entry.getNodeRef() != null)
- {
- if (entry.getBeforeProperties() != null)
- {
- String userName = (String) entry.getBeforeProperties().get(ContentModel.PROP_USERNAME);
- json.put("nodeName", userName == null ? "" : userName);
- }
- json.put("deletePerson", true);
- }
- else
- {
- json.put("nodeName", entry.getNodeName() == null ? "": entry.getNodeName());
- }
+ setNodeName(entry, json);
// TODO: Find another way for checking the event
if (entry.getEvent().equals("Delete RM Object"))
@@ -1586,6 +1562,65 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
}
}
+ /**
+ * Update a JSON object with a node name for an audit event.
+ *
+ * @param entry The audit event.
+ * @param json The object to update.
+ * @throws JSONException If there is a problem updating the JSON.
+ */
+ private void setNodeName(RecordsManagementAuditEntry entry, JSONObject json) throws JSONException
+ {
+ String nodeName = null;
+ if (entry.getNodeRef() != null)
+ {
+ // TODO: Find another way for checking the event
+ switch (entry.getEvent())
+ {
+ case "Create Person":
+ if (entry.getAfterProperties() != null)
+ {
+ 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.
+ NodeRef nodeRef = entry.getNodeRef();
+ if (nodeName == null && nodeService.exists(nodeRef))
+ {
+ nodeName = (String) nodeService.getProperty(nodeRef, ContentModel.PROP_USERNAME);
+ }
+ json.put("createPerson", true);
+ break;
+
+ case "Delete Person":
+ if (entry.getBeforeProperties() != null)
+ {
+ nodeName = (String) entry.getBeforeProperties().get(ContentModel.PROP_USERNAME);
+ }
+ json.put("deletePerson", true);
+ break;
+
+ case "Create User Group":
+ if (entry.getAfterProperties() != null)
+ {
+ nodeName = (String) entry.getAfterProperties().get(ContentModel.PROP_AUTHORITY_NAME);
+ }
+ break;
+
+ case "Delete User Group":
+ if (entry.getBeforeProperties() != null)
+ {
+ nodeName = (String) entry.getBeforeProperties().get(ContentModel.PROP_AUTHORITY_NAME);
+ }
+ break;
+
+ default:
+ nodeName = entry.getNodeName();
+ break;
+ }
+ }
+ json.put("nodeName", nodeName == null ? "" : nodeName);
+ }
+
/**
* Helper method to convert value to MLText
*
diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/event/CreatePersonAuditEvent.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/event/CreatePersonAuditEvent.java
index d46103d0c9..e54683c1d0 100644
--- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/event/CreatePersonAuditEvent.java
+++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/event/CreatePersonAuditEvent.java
@@ -27,11 +27,18 @@
package org.alfresco.module.org_alfresco_module_rm.audit.event;
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.alfresco.model.ContentModel;
import org.alfresco.repo.node.NodeServicePolicies.OnCreateNodePolicy;
import org.alfresco.repo.policy.annotation.Behaviour;
import org.alfresco.repo.policy.annotation.BehaviourBean;
import org.alfresco.repo.policy.annotation.BehaviourKind;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
+import org.alfresco.service.cmr.repository.NodeService;
+import org.alfresco.service.namespace.QName;
/**
* Audits person creation.
@@ -42,17 +49,30 @@ import org.alfresco.service.cmr.repository.ChildAssociationRef;
@BehaviourBean
public class CreatePersonAuditEvent extends AuditEvent implements OnCreateNodePolicy
{
+ /** Node Service */
+ private NodeService nodeService;
+
+ /**
+ * Sets the node service
+ *
+ * @param nodeService nodeService to set
+ */
+ public void setNodeService(NodeService nodeService)
+ {
+ this.nodeService = nodeService;
+ }
+
/**
* @see org.alfresco.repo.node.NodeServicePolicies.OnCreateNodePolicy#onCreateNode(org.alfresco.service.cmr.repository.ChildAssociationRef)
*/
@Override
- @Behaviour
- (
- kind = BehaviourKind.CLASS,
- type = "cm:person"
- )
+ @Behaviour(kind = BehaviourKind.CLASS, type = "cm:person")
public void onCreateNode(ChildAssociationRef childAssocRef)
{
- recordsManagementAuditService.auditEvent(childAssocRef.getChildRef(), getName());
+ Map auditProperties = new HashMap<>();
+ auditProperties.put(ContentModel.PROP_USERNAME,
+ nodeService.getProperty(childAssocRef.getChildRef(), ContentModel.PROP_USERNAME));
+
+ recordsManagementAuditService.auditEvent(childAssocRef.getChildRef(), getName(), null, auditProperties);
}
}
diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/event/CreateUserGroupAuditEvent.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/event/CreateUserGroupAuditEvent.java
index 034e23061e..a80e8aab54 100644
--- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/event/CreateUserGroupAuditEvent.java
+++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/audit/event/CreateUserGroupAuditEvent.java
@@ -26,11 +26,18 @@
*/
package org.alfresco.module.org_alfresco_module_rm.audit.event;
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.alfresco.model.ContentModel;
import org.alfresco.repo.node.NodeServicePolicies.OnCreateNodePolicy;
import org.alfresco.repo.policy.annotation.Behaviour;
import org.alfresco.repo.policy.annotation.BehaviourBean;
import org.alfresco.repo.policy.annotation.BehaviourKind;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
+import org.alfresco.service.cmr.repository.NodeService;
+import org.alfresco.service.namespace.QName;
/**
* Audits user group creation.
@@ -41,10 +48,27 @@ import org.alfresco.service.cmr.repository.ChildAssociationRef;
@BehaviourBean
public class CreateUserGroupAuditEvent extends AuditEvent implements OnCreateNodePolicy
{
+ /** Node Service */
+ private NodeService nodeService;
+
+ /**
+ * Sets the node service
+ *
+ * @param nodeService nodeService to set
+ */
+ public void setNodeService(NodeService nodeService)
+ {
+ this.nodeService = nodeService;
+ }
+
@Override
@Behaviour(kind = BehaviourKind.CLASS, type = "cm:authorityContainer")
public void onCreateNode(ChildAssociationRef childAssocRef)
{
- recordsManagementAuditService.auditEvent(childAssocRef.getChildRef(), getName());
+ Map auditProperties = new HashMap<>();
+ auditProperties.put(ContentModel.PROP_AUTHORITY_NAME,
+ nodeService.getProperty(childAssocRef.getChildRef(), ContentModel.PROP_AUTHORITY_NAME));
+
+ recordsManagementAuditService.auditEvent(childAssocRef.getChildRef(), getName(), null, auditProperties);
}
}