review changes

This commit is contained in:
Rodica Sutu
2018-03-23 17:28:21 +02:00
parent d009244189
commit 9d6bdeaa8b
4 changed files with 17 additions and 37 deletions

View File

@@ -59,7 +59,6 @@
<bean id="audit-event.delete-person" parent="audit-event" <bean id="audit-event.delete-person" parent="audit-event"
class="org.alfresco.module.org_alfresco_module_rm.audit.event.DeletePersonAuditEvent"> class="org.alfresco.module.org_alfresco_module_rm.audit.event.DeletePersonAuditEvent">
<property name="dictionaryService" ref="dictionaryService" />
<property name="nodeService" ref="nodeService" /> <property name="nodeService" ref="nodeService" />
<property name="name" value="Delete Person" /> <property name="name" value="Delete Person" />
<property name="label" value="rm.audit.delete-person" /> <property name="label" value="rm.audit.delete-person" />

View File

@@ -1516,12 +1516,11 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
} }
else if (entry.getEvent().equals("Delete Person") && entry.getNodeRef() != null) else if (entry.getEvent().equals("Delete Person") && entry.getNodeRef() != null)
{ {
String userName = null;
if (entry.getBeforeProperties() != null) if (entry.getBeforeProperties() != null)
{ {
userName = (String) entry.getBeforeProperties().get(ContentModel.PROP_USERNAME); String userName = (String) entry.getBeforeProperties().get(ContentModel.PROP_USERNAME);
json.put("nodeName", userName == null ? "" : userName);
} }
json.put("nodeName", userName == null ? "" : userName);
json.put("deletePerson", true); json.put("deletePerson", true);
} }
else else

View File

@@ -29,14 +29,12 @@ package org.alfresco.module.org_alfresco_module_rm.audit.event;
import java.io.Serializable; import java.io.Serializable;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Set;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.node.NodeServicePolicies.BeforeDeleteNodePolicy; import org.alfresco.repo.node.NodeServicePolicies.BeforeDeleteNodePolicy;
import org.alfresco.repo.policy.annotation.Behaviour; import org.alfresco.repo.policy.annotation.Behaviour;
import org.alfresco.repo.policy.annotation.BehaviourBean; import org.alfresco.repo.policy.annotation.BehaviourBean;
import org.alfresco.repo.policy.annotation.BehaviourKind; import org.alfresco.repo.policy.annotation.BehaviourKind;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
@@ -50,25 +48,24 @@ import org.alfresco.service.namespace.QName;
@BehaviourBean @BehaviourBean
public class DeletePersonAuditEvent extends AuditEvent implements BeforeDeleteNodePolicy public class DeletePersonAuditEvent extends AuditEvent implements BeforeDeleteNodePolicy
{ {
/** Node Service*/
private NodeService nodeService; private NodeService nodeService;
private DictionaryService dictionaryService; /**
* Sets the node service
*
* @param nodeService nodeService to set
*/
public void setNodeService(NodeService nodeService) public void setNodeService(NodeService nodeService)
{ {
this.nodeService = nodeService; this.nodeService = nodeService;
} }
public void setDictionaryService(DictionaryService dictionaryService)
{
this.dictionaryService = dictionaryService;
}
/** /**
* @see org.alfresco.repo.node.NodeServicePolicies.BeforeDeleteNodePolicy#(org.alfresco.service.cmr.repository.ChildAssociationRef) * Behaviour that will audit cm:person type when the user is deletedF
* @param nodeRef the node to be deleted
*
*/ */
@Override @Override
@Behaviour @Behaviour
( (
@@ -77,21 +74,12 @@ public class DeletePersonAuditEvent extends AuditEvent implements BeforeDeleteNo
) )
public void beforeDeleteNode(NodeRef nodeRef) public void beforeDeleteNode(NodeRef nodeRef)
{ {
//get the cm:person properties //retrieve the username property to be audited
Set<QName> properties = dictionaryService.getPropertyDefs(ContentModel.TYPE_PERSON).keySet(); Map<QName, Serializable> userName = new HashMap<>();
//retrive the properties and the values userName.put(ContentModel.PROP_USERNAME, nodeService.getProperty(nodeRef, ContentModel.PROP_USERNAME));
Map<QName, Serializable> result = new HashMap<>();
for (QName property : properties)
{
Serializable values = nodeService.getProperty(nodeRef, property);
if (values != null)
{
result.put(property, values);
}
}
//audit the property values before the delete event //audit the property values before the delete event
recordsManagementAuditService.auditEvent(nodeRef, getName(), result, null, true, false); recordsManagementAuditService.auditEvent(nodeRef, getName(), userName, null, true, false);
} }

View File

@@ -465,7 +465,7 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase
* Given I have deleted a user * Given I have deleted a user
* When I will get the RM audit filter by delete user event * When I will get the RM audit filter by delete user event
* Then there will be an entry for the deleted user * Then there will be an entry for the deleted user
* And the audit entry has the properties specific to cm:person type audited * And the audit entry has the username property value audited
* @throws Exception * @throws Exception
*/ */
@org.junit.Test @org.junit.Test
@@ -476,7 +476,6 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase
final static String DELETE_USER_AUDIT_EVENT = "Delete Person"; final static String DELETE_USER_AUDIT_EVENT = "Delete Person";
String userName = "auditDeleteUser"; String userName = "auditDeleteUser";
NodeRef user; NodeRef user;
long nrOfPropertiesAudited;
List<RecordsManagementAuditEntry> entry; List<RecordsManagementAuditEntry> entry;
@Override @Override
@@ -484,10 +483,6 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase
{ {
// create a user // create a user
user = createPerson(userName); user = createPerson(userName);
// count the cm:person properties with non null values
nrOfPropertiesAudited = dictionaryService.getPropertyDefs(ContentModel.TYPE_PERSON).keySet()
.stream().filter(prop -> nodeService.getProperty(user, prop) != null)
.count();
personService.deletePerson(userName); personService.deletePerson(userName);
} }
@@ -500,7 +495,6 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase
// get the audit events for "Delete Person" // get the audit events for "Delete Person"
entry = getAuditTrail(params, 1, ADMIN_USER); entry = getAuditTrail(params, 1, ADMIN_USER);
} }
@Override @Override
@@ -509,7 +503,7 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase
assertEquals("Delete user event is not audited.", DELETE_USER_AUDIT_EVENT, entry.get(0).getEvent()); assertEquals("Delete user event is not audited.", DELETE_USER_AUDIT_EVENT, entry.get(0).getEvent());
assertEquals(user.getId(), entry.get(0).getNodeName()); assertEquals(user.getId(), entry.get(0).getNodeName());
assertEquals("Unexpected nr of properties audited for cm:person type when deleting a user.", assertEquals("Unexpected nr of properties audited for cm:person type when deleting a user.",
nrOfPropertiesAudited, entry.get(0).getBeforeProperties().size()); 1, entry.get(0).getBeforeProperties().size());
assertEquals("Wrong value for username property is audited", assertEquals("Wrong value for username property is audited",
userName, entry.get(0).getBeforeProperties().get(ContentModel.PROP_USERNAME)); userName, entry.get(0).getBeforeProperties().get(ContentModel.PROP_USERNAME));
} }