diff --git a/source/java/org/alfresco/repo/audit/AuditServiceTest.java b/source/java/org/alfresco/repo/audit/AuditServiceTest.java index aa6a4bf10c..fd1c205371 100644 --- a/source/java/org/alfresco/repo/audit/AuditServiceTest.java +++ b/source/java/org/alfresco/repo/audit/AuditServiceTest.java @@ -197,22 +197,22 @@ public class AuditServiceTest extends BaseSpringTest ContentModel.TYPE_PERSON, container, props).getChildRef(); assertEquals(start + (1 * increment), auditService.getAuditTrail(typesNodeRef).size()); List list = auditService.getAuditTrail(typesNodeRef); - assertEquals(0, auditService.getAuditTrail(created).size()); - - // Update - - serviceRegistry.getNodeService().setProperty(created, ContentModel.PROP_FIRSTNAME, "New First Name"); assertEquals((1 * increment), auditService.getAuditTrail(created).size()); // Update - serviceRegistry.getNodeService().setProperty(created, ContentModel.PROP_FIRSTNAME, "Next First Name"); + serviceRegistry.getNodeService().setProperty(created, ContentModel.PROP_FIRSTNAME, "New First Name"); assertEquals((2 * increment), auditService.getAuditTrail(created).size()); + // Update + + serviceRegistry.getNodeService().setProperty(created, ContentModel.PROP_FIRSTNAME, "Next First Name"); + assertEquals((3 * increment), auditService.getAuditTrail(created).size()); + // Delete serviceRegistry.getNodeService().deleteNode(created); - assertEquals((3 * increment), auditService.getAuditTrail(created).size()); + assertEquals((4 * increment), auditService.getAuditTrail(created).size()); list = auditService.getAuditTrail(created); assertNotNull(list); diff --git a/source/java/org/alfresco/repo/audit/hibernate/Audit.hbm.xml b/source/java/org/alfresco/repo/audit/hibernate/Audit.hbm.xml index 2471679cc5..9e40c7a787 100644 --- a/source/java/org/alfresco/repo/audit/hibernate/Audit.hbm.xml +++ b/source/java/org/alfresco/repo/audit/hibernate/Audit.hbm.xml @@ -161,9 +161,21 @@ from org.alfresco.repo.audit.hibernate.AuditFactImpl as audit_fact where - audit_fact.storeProtocol = :protocol and - audit_fact.storeId = :store_id and - audit_fact.nodeUUID = :node_id + (audit_fact.storeProtocol = :protocol and + audit_fact.storeId = :store_id and + audit_fact.nodeUUID = :node_id) + or + arg1 like :nodeRef + or + arg2 like :nodeRef + or + arg3 like :nodeRef + or + arg4 like :nodeRef + or + arg5 like :nodeRef + or + returnValue like :nodeRef order by audit_fact.date asc diff --git a/source/java/org/alfresco/repo/audit/hibernate/AuditFactImpl.java b/source/java/org/alfresco/repo/audit/hibernate/AuditFactImpl.java index 1b4b433519..800da9a4b2 100644 --- a/source/java/org/alfresco/repo/audit/hibernate/AuditFactImpl.java +++ b/source/java/org/alfresco/repo/audit/hibernate/AuditFactImpl.java @@ -590,6 +590,7 @@ public class AuditFactImpl implements AuditFact query.setParameter(HibernateAuditDAO.QUERY_AUDIT_PROTOCOL, nodeRef.getStoreRef().getProtocol()); query.setParameter(HibernateAuditDAO.QUERY_AUDIT_STORE_ID, nodeRef.getStoreRef().getIdentifier()); query.setParameter(HibernateAuditDAO.QUERY_AUDIT_NODE_ID, nodeRef.getId()); + query.setParameter(HibernateAuditDAO.QUERY_AUDIT_NODE_REF, "%"+nodeRef.toString()+"%"); return (List) query.list(); } } diff --git a/source/java/org/alfresco/repo/audit/hibernate/AuditInfoImpl.java b/source/java/org/alfresco/repo/audit/hibernate/AuditInfoImpl.java index 92a14a5ece..09bdcbcd0e 100644 --- a/source/java/org/alfresco/repo/audit/hibernate/AuditInfoImpl.java +++ b/source/java/org/alfresco/repo/audit/hibernate/AuditInfoImpl.java @@ -86,7 +86,14 @@ public class AuditInfoImpl implements AuditInfo this.keyGUID = auditFact.getNodeUUID(); this.keyPropertiesAfter = null; this.keyPropertiesBefore = null; - this.keyStore = new StoreRef(auditFact.getStoreProtocol(), auditFact.getStoreId()); + if((auditFact.getStoreProtocol() != null) && (auditFact.getStoreId() != null)) + { + this.keyStore = new StoreRef(auditFact.getStoreProtocol(), auditFact.getStoreId()); + } + else + { + this.keyStore = null; + } this.message = auditFact.getMessage(); this.methodArguments = null; this.methodArgumentsAsStrings = new String[5]; diff --git a/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java b/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java index 63c9b3e3d8..8e08912de0 100644 --- a/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java +++ b/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java @@ -77,6 +77,8 @@ public class HibernateAuditDAO extends HibernateDaoSupport implements AuditDAO, public static final String QUERY_AUDIT_STORE_ID = "store_id"; public static final String QUERY_AUDIT_NODE_ID = "node_id"; + + public static final String QUERY_AUDIT_NODE_REF = "nodeRef"; /** a uuid identifying this unique instance */ private String uuid; diff --git a/source/java/org/alfresco/service/cmr/security/PersonService.java b/source/java/org/alfresco/service/cmr/security/PersonService.java index 2f7665c41d..b9a5b197ff 100644 --- a/source/java/org/alfresco/service/cmr/security/PersonService.java +++ b/source/java/org/alfresco/service/cmr/security/PersonService.java @@ -21,6 +21,7 @@ import java.util.Map; import java.util.Set; import org.alfresco.service.Auditable; +import org.alfresco.service.NotAuditable; import org.alfresco.service.PublicService; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; @@ -171,7 +172,7 @@ public interface PersonService * @param caseSensitiveUserName * @return */ - + @NotAuditable public String getUserIdentifier(String caseSensitiveUserName); }