getActions(NodeRef nodeRef);
/**
@@ -203,14 +221,16 @@ public interface ActionService
* @param actionId the action id
* @return the action
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "actionId"})
Action getAction(NodeRef nodeRef, String actionId);
/**
- * Removes an action associatied with a node reference.
+ * Removes an action associated with a node reference.
*
* @param nodeRef the node reference
* @param action the action
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "action" })
void removeAction(NodeRef nodeRef, Action action);
/**
@@ -218,6 +238,7 @@ public interface ActionService
*
* @param nodeRef the node reference
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
void removeAllActions(NodeRef nodeRef);
}
diff --git a/source/java/org/alfresco/service/cmr/coci/CheckOutCheckInService.java b/source/java/org/alfresco/service/cmr/coci/CheckOutCheckInService.java
index 5539eac729..64b58437fd 100644
--- a/source/java/org/alfresco/service/cmr/coci/CheckOutCheckInService.java
+++ b/source/java/org/alfresco/service/cmr/coci/CheckOutCheckInService.java
@@ -19,6 +19,7 @@ package org.alfresco.service.cmr.coci;
import java.io.Serializable;
import java.util.Map;
+import org.alfresco.service.Auditable;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
@@ -33,10 +34,10 @@ public interface CheckOutCheckInService
/**
* Checks out the given node placing a working copy in the destination specified.
*
- * When a node is checked out a read-only lock is placed on the origional node and
+ * When a node is checked out a read-only lock is placed on the original node and
* a working copy is placed in the destination specified.
*
- * The copy aspect is applied to the working copy so that the origional node can be
+ * The copy aspect is applied to the working copy so that the original node can be
* identified.
*
* The working copy aspect is applied to the working copy so that it can be identified
@@ -53,6 +54,7 @@ public interface CheckOutCheckInService
* the working copy
* @return node reference to the created working copy
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "destinationParentNodeRef", "destinationAssocTypeQName", "destinationAssocQName"})
public NodeRef checkout(
NodeRef nodeRef,
NodeRef destinationParentNodeRef,
@@ -68,38 +70,40 @@ public interface CheckOutCheckInService
* @param nodeRef a reference to the node to checkout
* @return a node reference to the created working copy
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public NodeRef checkout(NodeRef nodeRef);
/**
* Checks in the working node specified.
*
- * When a working copy is checked in the current state of the working copy is copyied to the
- * origional node. This will include any content updated in the working node.
+ * When a working copy is checked in the current state of the working copy is copied to the
+ * original node. This will include any content updated in the working node.
*
- * If version properties are provided the origional node will be versioned and updated accordingly.
+ * If version properties are provided the original node will be versioned and updated accordingly.
*
* If a content Url is provided it will be used to update the content of the working node before the
- * checkin opertaion takes place.
+ * checkin operation takes place.
*
- * Once the operation has completed the read lock applied to the origional node during checkout will
+ * Once the operation has completed the read lock applied to the original node during checkout will
* be removed and the working copy of the node deleted from the repository, unless the operation is
- * instructed to keep the origional node checked out. In which case the lock and the working copy will
+ * instructed to keep the original node checked out. In which case the lock and the working copy will
* remain.
*
- * The node reference to the origional node is returned.
+ * The node reference to the original node is returned.
*
* @param workingCopyNodeRef the working copy node reference
- * @param versionProperties the version properties. If null is passed then the origional node
+ * @param versionProperties the version properties. If null is passed then the original node
* is NOT versioned during the checkin operation.
* @param contentUrl a content url that should be set on the working copy before
- * the checkin opertation takes place. If null then the current working
- * copy content is copied back to the origional node.
+ * the checkin operation takes place. If null then the current working
+ * copy content is copied back to the original node.
* @param keepCheckedOut indicates whether the node should remain checked out after the checkin
* has taken place. When the node remains checked out the working node
* reference remains the same.
- * @return the node reference to the origional node, updated with the checked in
+ * @return the node reference to the original node, updated with the checked in
* state
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"workingCopyNodeRef", "versionProperties", "contentUrl", "keepCheckedOut"})
public NodeRef checkin(
NodeRef workingCopyNodeRef,
Map versionProperties,
@@ -112,14 +116,15 @@ public interface CheckOutCheckInService
* @see VersionOperationsService#checkin(NodeRef, HashMap, String, boolean)
*
* @param workingCopyNodeRef the working copy node reference
- * @param versionProperties the version properties. If null is passed then the origional node
+ * @param versionProperties the version properties. If null is passed then the original node
* is NOT versioned during the checkin operation.
* @param contentUrl a content url that should be set on the working copy before
- * the checkin opertation takes place. If null then the current working
- * copy content is copied back to the origional node.
- * @return the node reference to the origional node, updated with the checked in
+ * the checkin operation takes place. If null then the current working
+ * copy content is copied back to the original node.
+ * @return the node reference to the original node, updated with the checked in
* state
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"workingCopyNodeRef", "versionProperties", "contentUrl"})
public NodeRef checkin(
NodeRef workingCopyNodeRef,
Map versionProperties,
@@ -132,11 +137,12 @@ public interface CheckOutCheckInService
* @see VersionOperationsService#checkin(NodeRef, HashMap, String)
*
* @param workingCopyNodeRef the working copy node reference
- * @param versionProperties the version properties. If null is passed then the origional node
+ * @param versionProperties the version properties. If null is passed then the original node
* is NOT versioned during the checkin operation.
- * @return the node reference to the origional node, updated with the checked in
+ * @return the node reference to the original node, updated with the checked in
* state
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"workingCopyNodeRef", "versionProperties"})
public NodeRef checkin(
NodeRef workingCopyNodeRef,
Map versionProperties);
@@ -144,16 +150,17 @@ public interface CheckOutCheckInService
/**
* Cancels the checkout for a given working copy.
*
- * The read-only lock on the origional node is removed and the working copy is removed.
+ * The read-only lock on the original node is removed and the working copy is removed.
*
- * Note that all modification made to the working copy will be lost and the origional node
- * will remiain unchanged.
+ * Note that all modification made to the working copy will be lost and the original node
+ * will remain unchanged.
*
- * A reference to the origional node reference is returned.
+ * A reference to the original node reference is returned.
*
* @param workingCopyNodeRef the working copy node reference
- * @return the origional node reference
+ * @return the original node reference
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"workingCopyNodeRef"})
public NodeRef cancelCheckout(NodeRef workingCopyNodeRef);
/**
@@ -164,5 +171,6 @@ public interface CheckOutCheckInService
* @param nodeRef a node reference
* @return the working copy node reference or null if none.
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public NodeRef getWorkingCopy(NodeRef nodeRef);
}
diff --git a/source/java/org/alfresco/service/cmr/dictionary/DictionaryService.java b/source/java/org/alfresco/service/cmr/dictionary/DictionaryService.java
index 5ad1b5fdda..b939d3c72f 100644
--- a/source/java/org/alfresco/service/cmr/dictionary/DictionaryService.java
+++ b/source/java/org/alfresco/service/cmr/dictionary/DictionaryService.java
@@ -18,6 +18,7 @@ package org.alfresco.service.cmr.dictionary;
import java.util.Collection;
+import org.alfresco.service.NotAuditable;
import org.alfresco.service.namespace.QName;
@@ -40,52 +41,61 @@ public interface DictionaryService
/**
* @return the names of all models that have been registered with the Repository
*/
+ @NotAuditable
public Collection getAllModels();
/**
* @param model the model name to retrieve
* @return the specified model (or null, if it doesn't exist)
*/
+ @NotAuditable
public ModelDefinition getModel(QName model);
/**
* @return the names of all data types that have been registered with the Repository
*/
+ @NotAuditable
Collection getAllDataTypes();
/**
* @param model the model to retrieve data types for
* @return the names of all data types defined within the specified model
*/
+ @NotAuditable
Collection getDataTypes(QName model);
/**
* @param name the name of the data type to retrieve
* @return the data type definition (or null, if it doesn't exist)
*/
+ @NotAuditable
DataTypeDefinition getDataType(QName name);
/**
* @param javaClass java class to find datatype for
* @return the data type definition (or null, if a mapping does not exist)
*/
+ @NotAuditable
DataTypeDefinition getDataType(Class javaClass);
/**
* @return the names of all types that have been registered with the Repository
*/
+ @NotAuditable
Collection getAllTypes();
/**
* @param model the model to retrieve types for
* @return the names of all types defined within the specified model
*/
+ @NotAuditable
Collection getTypes(QName model);
/**
* @param name the name of the type to retrieve
* @return the type definition (or null, if it doesn't exist)
*/
+ @NotAuditable
TypeDefinition getType(QName name);
/**
@@ -96,29 +106,34 @@ public interface DictionaryService
* @param aspects the aspects to combine with the type
* @return the anonymous type definition
*/
+ @NotAuditable
TypeDefinition getAnonymousType(QName type, Collection aspects);
/**
* @return the names of all aspects that have been registered with the Repository
*/
+ @NotAuditable
Collection getAllAspects();
/**
* @param model the model to retrieve aspects for
* @return the names of all aspects defined within the specified model
*/
+ @NotAuditable
Collection getAspects(QName model);
/**
* @param name the name of the aspect to retrieve
* @return the aspect definition (or null, if it doesn't exist)
*/
+ @NotAuditable
AspectDefinition getAspect(QName name);
/**
* @param name the name of the class (type or aspect) to retrieve
* @return the class definition (or null, if it doesn't exist)
*/
+ @NotAuditable
ClassDefinition getClass(QName name);
/**
@@ -128,6 +143,7 @@ public interface DictionaryService
* @param ofClassName the class to test against
* @return true => the class is a sub-class (or itself)
*/
+ @NotAuditable
boolean isSubClass(QName className, QName ofClassName);
/**
@@ -140,6 +156,7 @@ public interface DictionaryService
* @param propertyName the property name
* @return the property definition (or null, if it doesn't exist)
*/
+ @NotAuditable
PropertyDefinition getProperty(QName className, QName propertyName);
/**
@@ -148,6 +165,7 @@ public interface DictionaryService
* @param propertyName the property name
* @return the property definition (or null, if it doesn't exist)
*/
+ @NotAuditable
PropertyDefinition getProperty(QName propertyName);
/**
@@ -156,6 +174,7 @@ public interface DictionaryService
* @param associationName the property name
* @return the association definition (or null, if it doesn't exist)
*/
+ @NotAuditable
AssociationDefinition getAssociation(QName associationName);
// TODO: Behaviour definitions
diff --git a/source/java/org/alfresco/service/cmr/lock/LockService.java b/source/java/org/alfresco/service/cmr/lock/LockService.java
index 59c4aa47f7..7687e2b072 100644
--- a/source/java/org/alfresco/service/cmr/lock/LockService.java
+++ b/source/java/org/alfresco/service/cmr/lock/LockService.java
@@ -19,6 +19,7 @@ package org.alfresco.service.cmr.lock;
import java.util.Collection;
import java.util.List;
+import org.alfresco.service.Auditable;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
@@ -46,6 +47,7 @@ public interface LockService
* @throws UnableToAquireLockException
* thrown if the lock could not be obtained
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "lockType"})
public void lock(NodeRef nodeRef, LockType lockType)
throws UnableToAquireLockException;
@@ -71,6 +73,7 @@ public interface LockService
* @throws UnableToAquireLockException
* thrown if the lock could not be obtained
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "lockType", "timeToExpire"})
public void lock(NodeRef nodeRef, LockType lockType, int timeToExpire)
throws UnableToAquireLockException;
@@ -102,6 +105,7 @@ public interface LockService
* @throws UnableToAquireLockException
* thrown if the lock could not be obtained
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "lockType", "timeToExpire", "lockChildren"})
public void lock(NodeRef nodeRef, LockType lockType, int timeToExpire, boolean lockChildren)
throws UnableToAquireLockException;
@@ -129,6 +133,7 @@ public interface LockService
* @throws UnableToAquireLockException
* thrown if the lock could not be obtained
*/
+ @Auditable(parameters = {"nodeRefs", "lockType", "timeToExpire"})
public void lock(Collection nodeRefs, LockType lockType, int timeToExpire)
throws UnableToAquireLockException;
@@ -143,6 +148,7 @@ public interface LockService
* @throws UnableToReleaseLockException
* thrown if the lock could not be released
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public void unlock(NodeRef nodeRef)
throws UnableToReleaseLockException;
@@ -166,6 +172,7 @@ public interface LockService
* @throws UnableToReleaseLockException
* thrown if the lock could not be released
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "lockChildren"})
public void unlock(NodeRef nodeRef, boolean lockChildren)
throws UnableToReleaseLockException;
@@ -187,6 +194,7 @@ public interface LockService
* @throws UnableToReleaseLockException
* thrown if the lock could not be released
*/
+ @Auditable(parameters = {"nodeRefs"})
public void unlock(Collection nodeRefs)
throws UnableToReleaseLockException;
@@ -198,6 +206,7 @@ public interface LockService
* @param nodeRef the node reference
* @return the lock status
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public LockStatus getLockStatus(NodeRef nodeRef);
/**
@@ -211,6 +220,7 @@ public interface LockService
* @return the lock type, null is returned if the object in question has no
* lock
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public LockType getLockType(NodeRef nodeRef);
/**
@@ -222,6 +232,7 @@ public interface LockService
*
* @param nodeRef the node reference
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public void checkForLock(NodeRef nodeRef);
/**
@@ -230,6 +241,7 @@ public interface LockService
* @param storeRef the store reference
* @return a list of nodes that the current user has locked.
*/
+ @Auditable(key = Auditable.Key.ARG_0,parameters = {"storeRef"})
public List getLocks(StoreRef storeRef);
/**
@@ -240,5 +252,6 @@ public interface LockService
*
* @return a list of nodes that the current user has locked filtered by the lock type provided
*/
+ @Auditable(key = Auditable.Key.ARG_0,parameters = {"storeRef", "lockType"})
public List getLocks(StoreRef storeRef, LockType lockType);
}
diff --git a/source/java/org/alfresco/service/cmr/model/FileFolderService.java b/source/java/org/alfresco/service/cmr/model/FileFolderService.java
index 9b828dcc4a..259e756622 100644
--- a/source/java/org/alfresco/service/cmr/model/FileFolderService.java
+++ b/source/java/org/alfresco/service/cmr/model/FileFolderService.java
@@ -18,6 +18,7 @@ package org.alfresco.service.cmr.model;
import java.util.List;
+import org.alfresco.service.Auditable;
import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.repository.NodeRef;
@@ -39,6 +40,7 @@ public interface FileFolderService
* @param contextNodeRef the node to start searching in
* @return Returns a list of matching files and folders
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"contextNodeRef"})
public List list(NodeRef contextNodeRef);
/**
@@ -47,6 +49,7 @@ public interface FileFolderService
* @param folderNodeRef the folder to start searching in
* @return Returns a list of matching files
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"folderNodeRef"})
public List listFiles(NodeRef folderNodeRef);
/**
@@ -55,6 +58,7 @@ public interface FileFolderService
* @param contextNodeRef the node to start searching in
* @return Returns a list of matching folders
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"contextNodeRef"})
public List listFolders(NodeRef contextNodeRef);
/**
@@ -71,6 +75,7 @@ public interface FileFolderService
*
* @see #search(NodeRef, String, boolean, boolean, boolean)
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"contextNodeRef", "namePattern", "includeSubFolders"})
public List search(
NodeRef contextNodeRef,
String namePattern,
@@ -90,6 +95,7 @@ public interface FileFolderService
* @param includeSubFolders true to search the entire hierarchy below the search context
* @return Returns a list of file or folder matches
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"contextNodeRef", "namePattern", "fileSearch", "folderSearch", "includeSubFolders"})
public List search(
NodeRef contextNodeRef,
String namePattern,
@@ -106,6 +112,7 @@ public interface FileFolderService
* @throws FileExistsException if a file or folder with the new name already exists
* @throws FileNotFoundException the file or folder reference doesn't exist
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"fileFolderRef", "newName"})
public FileInfo rename(NodeRef fileFolderRef, String newName) throws FileExistsException, FileNotFoundException;
/**
@@ -120,6 +127,7 @@ public interface FileFolderService
* @throws FileExistsException
* @throws FileNotFoundException
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"sourceNodeRef", "targetParentRef", "newName"})
public FileInfo move(NodeRef sourceNodeRef, NodeRef targetParentRef, String newName)
throws FileExistsException, FileNotFoundException;
@@ -136,6 +144,7 @@ public interface FileFolderService
* @throws FileExistsException
* @throws FileNotFoundException
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"sourceNodeRef", "targetParentRef", "newName"})
public FileInfo copy(NodeRef sourceNodeRef, NodeRef targetParentRef, String newName)
throws FileExistsException, FileNotFoundException;
@@ -149,6 +158,7 @@ public interface FileFolderService
* @return Returns the new node's file information
* @throws FileExistsException
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"parentNodeRef", "name", "typeQName"})
public FileInfo create(NodeRef parentNodeRef, String name, QName typeQName) throws FileExistsException;
/**
@@ -156,6 +166,7 @@ public interface FileFolderService
*
* @param nodeRef the node to delete
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public void delete(NodeRef nodeRef);
/**
@@ -170,15 +181,16 @@ public interface FileFolderService
* {@link org.alfresco.model.ContentModel#TYPE_FOLDER they folder type}.
* @return Returns the info of the last folder in the path.
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"parentNodeRef", "pathElements", "folderTypeQName"})
public FileInfo makeFolders(NodeRef parentNodeRef, List pathElements, QName folderTypeQName);
/**
* Get the file or folder names from the root down to and including the node provided.
*
* - The root node can be of any type and is not included in the path list.
- * - Only the primary path is considered. If the target node is not a descendent of the
+ *
- Only the primary path is considered. If the target node is not a descendant of the
* root along purely primary associations, then an exception is generated.
- * - If an invalid type is encoutered along the path, then an exception is generated.
+ * - If an invalid type is encountered along the path, then an exception is generated.
*
*
* @param rootNodeRef the start of the returned path, or null if the store root
@@ -188,6 +200,7 @@ public interface FileFolderService
* including the destination file or folder
* @throws FileNotFoundException if the node could not be found
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"rootNodeRef", "nodeRef"})
public List getNamePath(NodeRef rootNodeRef, NodeRef nodeRef) throws FileNotFoundException;
/**
@@ -198,6 +211,7 @@ public interface FileFolderService
* @return Returns the info of the file or folder
* @throws FileNotFoundException if no file or folder exists along the path
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"rootNodeRef", "pathElements"})
public FileInfo resolveNamePath(NodeRef rootNodeRef, List pathElements) throws FileNotFoundException;
/**
@@ -206,9 +220,26 @@ public interface FileFolderService
* @param nodeRef the node to get info for
* @return Returns the file info or null if the node does not represent a file or folder
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public FileInfo getFileInfo(NodeRef nodeRef);
+ /**
+ * Get the reader to the file represented by the node according to the File/Folder model.
+ * (This is not the same as the method on the ContentService)
+ *
+ * @param nodeRef
+ * @return
+ */
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public ContentReader getReader(NodeRef nodeRef);
+ /**
+ * Get the writer to the file represented by the node according to the File/Folder model.
+ * (This is not the same as the method on the ContentService)
+ *
+ * @param nodeRef
+ * @return
+ */
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public ContentWriter getWriter(NodeRef nodeRef);
}
diff --git a/source/java/org/alfresco/service/cmr/repository/ContentService.java b/source/java/org/alfresco/service/cmr/repository/ContentService.java
index f6fe72bf91..cbca110d5e 100644
--- a/source/java/org/alfresco/service/cmr/repository/ContentService.java
+++ b/source/java/org/alfresco/service/cmr/repository/ContentService.java
@@ -17,6 +17,7 @@
package org.alfresco.service.cmr.repository;
import org.alfresco.repo.content.transform.ContentTransformer;
+import org.alfresco.service.Auditable;
import org.alfresco.service.cmr.dictionary.InvalidTypeException;
import org.alfresco.service.namespace.QName;
@@ -59,6 +60,7 @@ public interface ContentService
*
* @see org.alfresco.repo.content.filestore.FileContentReader#getSafeContentReader(ContentReader, String, Object[])
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "propertyQName"})
public ContentReader getReader(NodeRef nodeRef, QName propertyQName)
throws InvalidNodeRefException, InvalidTypeException;
@@ -80,6 +82,7 @@ public interface ContentService
* @throws InvalidNodeRefException if the node doesn't exist
* @throws InvalidTypeException if the node property is not of type content
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "propertyQName", "update"})
public ContentWriter getWriter(NodeRef nodeRef, QName propertyQName, boolean update)
throws InvalidNodeRefException, InvalidTypeException;
@@ -89,6 +92,7 @@ public interface ContentService
*
* @return Returns a writer onto a temporary location
*/
+ @Auditable
public ContentWriter getTempWriter();
/**
@@ -105,6 +109,7 @@ public interface ContentService
* given source and target mimetypes of the reader and writer
* @throws ContentIOException if the transformation fails
*/
+ @Auditable(parameters = {"reader", "writer"})
public void transform(ContentReader reader, ContentWriter writer)
throws NoTransformerException, ContentIOException;
@@ -118,6 +123,7 @@ public interface ContentService
*
* @see ContentAccessor#getMimetype()
*/
+ @Auditable(parameters = {"sourceMimetype", "targetMimetype"})
public ContentTransformer getTransformer(String sourceMimetype, String targetMimetype);
/**
@@ -133,5 +139,6 @@ public interface ContentService
*
* @return true if a transformer exists, false otherwise
*/
+ @Auditable(parameters = {"reader", "writer"})
public boolean isTransformable(ContentReader reader, ContentWriter writer);
}
diff --git a/source/java/org/alfresco/service/cmr/repository/CopyService.java b/source/java/org/alfresco/service/cmr/repository/CopyService.java
index cbc50da65e..62e365d10f 100644
--- a/source/java/org/alfresco/service/cmr/repository/CopyService.java
+++ b/source/java/org/alfresco/service/cmr/repository/CopyService.java
@@ -18,6 +18,7 @@ package org.alfresco.service.cmr.repository;
import java.util.List;
+import org.alfresco.service.Auditable;
import org.alfresco.service.namespace.QName;
/**
@@ -38,7 +39,7 @@ public interface CopyService
*
* If the new node resides in the same workspace then
* the new node will have the Copy aspect applied to it which will
- * reference the origional node.
+ * reference the original node.
*
* The aspects applied to source node will also be applied to destination node
* and all the property value will be duplicated accordingly. This is with the
@@ -48,7 +49,7 @@ public interface CopyService
*
* Child associations are copied onto the destination node. If the child of
* copied association is not present in the destination workspace the child
- * association is not copied. This is unless is has been specfied that the
+ * association is not copied. This is unless is has been specified that the
* children of the source node should also be copied.
*
* Target associations are copied to the destination node. If the target of the
@@ -65,6 +66,7 @@ public interface CopyService
*
* @return the new node reference
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"sourceNodeRef", "destinationParent", "destinationAssocTypeQName", "destinationQName", "copyChildren"})
public NodeRef copy(
NodeRef sourceNodeRef,
NodeRef destinationParent,
@@ -84,6 +86,7 @@ public interface CopyService
* parent to the new node
* @return the new node reference
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"sourceNodeRef", "destinationParent", "destinationAssocTypeQName", "destinationQName"})
public NodeRef copy(
NodeRef sourceNodeRef,
NodeRef destinationParent,
@@ -98,7 +101,7 @@ public interface CopyService
* that of the source node.
*
* If data (for example an association) does not exist on the source
- * node, but does exist on the detination node this data is NOT deleted
+ * node, but does exist on the destination node this data is NOT deleted
* from the destination node.
*
* Child associations and target associations are updated on the destination
@@ -109,7 +112,7 @@ public interface CopyService
* updated to the destination node.
*
* All aspects found on the source node are applied to the destination node where
- * missing. The properties of the apects are updated accordingly except in the case
+ * missing. The properties of the aspects are updated accordingly except in the case
* where the aspect has been marked as having 'Non-Transferable State'. In this case
* aspect properties will take on the values already assigned to them in the
* destination node.
@@ -117,13 +120,15 @@ public interface CopyService
* @param sourceNodeRef the source node reference
* @param destinationNodeRef the destination node reference
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"sourceNodeRef", "destinationNodeRef"})
public void copy(NodeRef sourceNodeRef, NodeRef destinationNodeRef);
/**
* Gets all the copies of a given node that have been made using this service.
*
- * @param nodeRef the origional node reference
+ * @param nodeRef the original node reference
* @return a list of copies, empty is none
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public List getCopies(NodeRef nodeRef);
}
diff --git a/source/java/org/alfresco/service/cmr/repository/MimetypeService.java b/source/java/org/alfresco/service/cmr/repository/MimetypeService.java
index bb9e90b506..6475373993 100644
--- a/source/java/org/alfresco/service/cmr/repository/MimetypeService.java
+++ b/source/java/org/alfresco/service/cmr/repository/MimetypeService.java
@@ -20,6 +20,7 @@ import java.util.List;
import java.util.Map;
import org.alfresco.error.AlfrescoRuntimeException;
+import org.alfresco.service.NotAuditable;
/**
@@ -37,6 +38,7 @@ public interface MimetypeService
* @return Returns the default extension for the mimetype
* @throws AlfrescoRuntimeException if the mimetype doesn't exist
*/
+ @NotAuditable
public String getExtension(String mimetype);
/**
@@ -44,6 +46,7 @@ public interface MimetypeService
*
* @return the map of displays indexed by extension
*/
+ @NotAuditable
public Map getDisplaysByExtension();
/**
@@ -51,6 +54,7 @@ public interface MimetypeService
*
* @return the map of displays indexed by mimetype
*/
+ @NotAuditable
public Map getDisplaysByMimetype();
/**
@@ -58,6 +62,7 @@ public interface MimetypeService
*
* @return the map of extension indexed by mimetype
*/
+ @NotAuditable
public Map getExtensionsByMimetype();
/**
@@ -65,6 +70,7 @@ public interface MimetypeService
*
* @return the map of mimetypes indexed by extension
*/
+ @NotAuditable
public Map getMimetypesByExtension();
/**
@@ -72,6 +78,7 @@ public interface MimetypeService
*
* @return all mimetypes
*/
+ @NotAuditable
public List getMimetypes();
/**
@@ -82,5 +89,6 @@ public interface MimetypeService
* @return Returns the best guess mimetype or the mimetype for
* straight binary files if no extension could be found.
*/
+ @NotAuditable
public String guessMimetype(String filename);
}
diff --git a/source/java/org/alfresco/service/cmr/repository/NodeService.java b/source/java/org/alfresco/service/cmr/repository/NodeService.java
index db10928a2b..88e178ed64 100644
--- a/source/java/org/alfresco/service/cmr/repository/NodeService.java
+++ b/source/java/org/alfresco/service/cmr/repository/NodeService.java
@@ -21,6 +21,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.alfresco.service.Auditable;
import org.alfresco.service.cmr.dictionary.InvalidAspectException;
import org.alfresco.service.cmr.dictionary.InvalidTypeException;
import org.alfresco.service.namespace.QName;
@@ -38,6 +39,7 @@ public interface NodeService
*
* @return Returns a list of store references
*/
+ @Auditable
public List getStores();
/**
@@ -50,18 +52,21 @@ public interface NodeService
* @return Returns a reference to the store
* @throws StoreExistsException
*/
+ @Auditable(parameters = {"protocol", "identifier"})
public StoreRef createStore(String protocol, String identifier) throws StoreExistsException;
/**
* @param storeRef a reference to the store to look for
* @return Returns true if the store exists, otherwise false
*/
+ @Auditable(parameters = {"storeRef"})
public boolean exists(StoreRef storeRef);
/**
* @param nodeRef a reference to the node to look for
* @return Returns true if the node exists, otherwise false
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef"})
public boolean exists(NodeRef nodeRef);
/**
@@ -72,6 +77,7 @@ public interface NodeService
* @param nodeRef a reference to a current or previously existing node
* @return Returns the status of the node, or null if the node never existed
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef"})
public NodeRef.Status getNodeStatus(NodeRef nodeRef);
/**
@@ -79,11 +85,13 @@ public interface NodeService
* @return Returns a reference to the root node of the store
* @throws InvalidStoreRefException if the store could not be found
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"storeRef"})
public NodeRef getRootNode(StoreRef storeRef) throws InvalidStoreRefException;
/**
* @see #createNode(NodeRef, QName, QName, QName, Map)
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"parentRef", "assocTypeQName", "assocQName", "nodeTypeQName"})
public ChildAssociationRef createNode(
NodeRef parentRef,
QName assocTypeQName,
@@ -106,6 +114,7 @@ public interface NodeService
*
* @see org.alfresco.service.cmr.dictionary.DictionaryService
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"parentRef", "assocTypeQName", "assocQName", "nodeTypeQName", "properties"})
public ChildAssociationRef createNode(
NodeRef parentRef,
QName assocTypeQName,
@@ -135,6 +144,7 @@ public interface NodeService
*
* @see #getPrimaryParent(NodeRef)
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeToMoveRef", "newParentRef", "assocTypeQName", "assocQName"})
public ChildAssociationRef moveNode(
NodeRef nodeToMoveRef,
NodeRef newParentRef,
@@ -148,12 +158,13 @@ public interface NodeService
* associations.
*
* @param childAssocRef the child association that must be moved in the order
- * @param index an arbibrary index that will affect the return order
+ * @param index an arbitrary index that will affect the return order
*
* @see #getChildAssocs(NodeRef)
* @see #getChildAssocs(NodeRef, QNamePattern, QNamePattern)
* @see ChildAssociationRef#getNthSibling()
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"childAssocRef", "index"})
public void setChildAssociationIndex(
ChildAssociationRef childAssocRef,
int index)
@@ -166,6 +177,7 @@ public interface NodeService
*
* @see org.alfresco.service.cmr.dictionary.DictionaryService
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef"})
public QName getType(NodeRef nodeRef) throws InvalidNodeRefException;
/**
@@ -180,6 +192,7 @@ public interface NodeService
*
* @since 1.1
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef", "typeQName"})
public void setType(NodeRef nodeRef, QName typeQName) throws InvalidNodeRefException;
/**
@@ -196,6 +209,7 @@ public interface NodeService
* @see org.alfresco.service.cmr.dictionary.DictionaryService#getAspect(QName)
* @see org.alfresco.service.cmr.dictionary.ClassDefinition#getProperties()
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef", "aspectTypeQName", "aspectProperties"})
public void addAspect(
NodeRef nodeRef,
QName aspectTypeQName,
@@ -211,6 +225,7 @@ public interface NodeService
* @throws InvalidAspectException if the the aspect is unknown or if the
* aspect is mandatory for the class of the node
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef", "aspectTypeQName"})
public void removeAspect(NodeRef nodeRef, QName aspectTypeQName)
throws InvalidNodeRefException, InvalidAspectException;
@@ -219,13 +234,14 @@ public interface NodeService
* removed if they are NOT mandatory.
*
* @param nodeRef
- * @param aspectRef
+ * @param aspectTypeQName
* @return Returns true if the aspect has been applied to the given node,
* otherwise false
* @throws InvalidNodeRefException if the node could not be found
* @throws InvalidAspectException if the aspect reference is invalid
*/
- public boolean hasAspect(NodeRef nodeRef, QName aspectRef)
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef", "aspectTypeQName"})
+ public boolean hasAspect(NodeRef nodeRef, QName aspectTypeQName)
throws InvalidNodeRefException, InvalidAspectException;
/**
@@ -234,6 +250,7 @@ public interface NodeService
* aspects
* @throws InvalidNodeRefException if the node could not be found
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef"})
public Set getAspects(NodeRef nodeRef) throws InvalidNodeRefException;
/**
@@ -246,6 +263,7 @@ public interface NodeService
* @param nodeRef reference to a node within a store
* @throws InvalidNodeRefException if the reference given is invalid
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef"})
public void deleteNode(NodeRef nodeRef) throws InvalidNodeRefException;
/**
@@ -261,6 +279,7 @@ public interface NodeService
* @throws InvalidNodeRefException if the parent or child nodes could not be found
* @throws CyclicChildRelationshipException if the child partakes in a cyclic relationship after the add
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"parentRef", "childRef", "assocTypeQName", "qname"})
public ChildAssociationRef addChild(
NodeRef parentRef,
NodeRef childRef,
@@ -278,6 +297,7 @@ public interface NodeService
* @return Returns a collection of deleted entities - both associations and node references.
* @throws InvalidNodeRefException if the parent or child nodes could not be found
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"parentRef", "childRef"})
public void removeChild(NodeRef parentRef, NodeRef childRef) throws InvalidNodeRefException;
/**
@@ -285,6 +305,7 @@ public interface NodeService
* @return Returns all properties keyed by their qualified name
* @throws InvalidNodeRefException if the node could not be found
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef"})
public Map getProperties(NodeRef nodeRef) throws InvalidNodeRefException;
/**
@@ -293,6 +314,7 @@ public interface NodeService
* @return Returns the value of the property, or null if not yet set
* @throws InvalidNodeRefException if the node could not be found
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef", "qname"})
public Serializable getProperty(NodeRef nodeRef, QName qname) throws InvalidNodeRefException;
/**
@@ -306,6 +328,7 @@ public interface NodeService
* @param properties all the properties of the node keyed by their qualified names
* @throws InvalidNodeRefException if the node could not be found
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef", "properties"})
public void setProperties(NodeRef nodeRef, Map properties) throws InvalidNodeRefException;
/**
@@ -320,6 +343,7 @@ public interface NodeService
* @param propertyValue the value of the property - never null
* @throws InvalidNodeRefException if the node could not be found
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef", "qname", "value"})
public void setProperty(NodeRef nodeRef, QName qname, Serializable value) throws InvalidNodeRefException;
/**
@@ -330,6 +354,7 @@ public interface NodeService
*
* @see #getParentAssocs(NodeRef, QNamePattern, QNamePattern)
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef"})
public List getParentAssocs(NodeRef nodeRef) throws InvalidNodeRefException;
/**
@@ -350,6 +375,7 @@ public interface NodeService
* @see QName
* @see org.alfresco.service.namespace.RegexQNamePattern#MATCH_ALL
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef", "typeQNamePattern", "qnamePattern"})
public List getParentAssocs(NodeRef nodeRef, QNamePattern typeQNamePattern, QNamePattern qnamePattern)
throws InvalidNodeRefException;
@@ -367,6 +393,7 @@ public interface NodeService
* @see #setChildAssociationIndex(ChildAssociationRef, int)
* @see ChildAssociationRef#getNthSibling()
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef"})
public List getChildAssocs(NodeRef nodeRef) throws InvalidNodeRefException;
/**
@@ -383,6 +410,7 @@ public interface NodeService
* @see QName
* @see org.alfresco.service.namespace.RegexQNamePattern#MATCH_ALL
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef", "typeQNamePattern", "qnamePattern"})
public List getChildAssocs(
NodeRef nodeRef,
QNamePattern typeQNamePattern,
@@ -398,6 +426,7 @@ public interface NodeService
* @return Returns the primary parent-child association of the node
* @throws InvalidNodeRefException if the node could not be found
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef"})
public ChildAssociationRef getPrimaryParent(NodeRef nodeRef) throws InvalidNodeRefException;
/**
@@ -409,6 +438,7 @@ public interface NodeService
* @throws InvalidNodeRefException if either of the nodes could not be found
* @throws AssociationExistsException
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"sourceRef", "targetRef", "assocTypeQName"})
public AssociationRef createAssociation(NodeRef sourceRef, NodeRef targetRef, QName assocTypeQName)
throws InvalidNodeRefException, AssociationExistsException;
@@ -419,6 +449,7 @@ public interface NodeService
* @param assocTypeQName the qualified name of the association type
* @throws InvalidNodeRefException if either of the nodes could not be found
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"sourceRef", "targetRef", "assocTypeQName"})
public void removeAssociation(NodeRef sourceRef, NodeRef targetRef, QName assocTypeQName)
throws InvalidNodeRefException;
@@ -435,6 +466,7 @@ public interface NodeService
* @see QName
* @see org.alfresco.service.namespace.RegexQNamePattern#MATCH_ALL
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"sourceRef", "qnamePattern"})
public List getTargetAssocs(NodeRef sourceRef, QNamePattern qnamePattern)
throws InvalidNodeRefException;
@@ -451,6 +483,7 @@ public interface NodeService
* @see QName
* @see org.alfresco.service.namespace.RegexQNamePattern#MATCH_ALL
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"targetRef", "qnamePattern"})
public List getSourceAssocs(NodeRef targetRef, QNamePattern qnamePattern)
throws InvalidNodeRefException;
@@ -465,6 +498,7 @@ public interface NodeService
*
* @see #getPaths(NodeRef, boolean)
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef"})
public Path getPath(NodeRef nodeRef) throws InvalidNodeRefException;
/**
@@ -478,6 +512,7 @@ public interface NodeService
* @return Returns a List of all possible paths to the given node
* @throws InvalidNodeRefException if the node could not be found
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"nodeRef", "primaryOnly"})
public List getPaths(NodeRef nodeRef, boolean primaryOnly) throws InvalidNodeRefException;
/**
@@ -486,6 +521,7 @@ public interface NodeService
* @param storeRef the store that items were deleted from
* @return Returns the archive node parent
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"storeRef"})
public NodeRef getStoreArchiveNode(StoreRef storeRef);
/**
@@ -502,6 +538,7 @@ public interface NodeService
* or null to use the original
* @return Returns the reference to the newly created node
*/
+ @Auditable(key = Auditable.Key.ARG_0 ,parameters = {"archivedNodeRef", "destinationParentNodeRef", "assocTypeQName", "assocQName"})
public NodeRef restoreNode(
NodeRef archivedNodeRef,
NodeRef destinationParentNodeRef,
diff --git a/source/java/org/alfresco/service/cmr/repository/ScriptService.java b/source/java/org/alfresco/service/cmr/repository/ScriptService.java
index 87598ca931..3c6b9dcc88 100644
--- a/source/java/org/alfresco/service/cmr/repository/ScriptService.java
+++ b/source/java/org/alfresco/service/cmr/repository/ScriptService.java
@@ -16,9 +16,9 @@
*/
package org.alfresco.service.cmr.repository;
-import java.io.Writer;
import java.util.Map;
+import org.alfresco.service.Auditable;
import org.alfresco.service.namespace.QName;
/**
@@ -32,7 +32,7 @@ import org.alfresco.service.namespace.QName;
* Java objects are passed into the scripting engine and methods can be accessed directly from the script.
*
* A script is executed within a single transaction, any modifications to nodes or properties that fail
- * and cause a rollback which will rollback all repoistory modifications made by the script.
+ * and cause a rollback which will rollback all repository modifications made by the script.
*
* @author Kevin Roast
*/
@@ -48,6 +48,7 @@ public interface ScriptService
*
* @throws ScriptException
*/
+ @Auditable(parameters = {"scriptClasspath", "model"})
public Object executeScript(String scriptClasspath, Map model)
throws ScriptException;
@@ -63,6 +64,7 @@ public interface ScriptService
*
* @throws ScriptException
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"scriptRef", "contentProp", "model"})
public Object executeScript(NodeRef scriptRef, QName contentProp, Map model)
throws ScriptException;
@@ -76,6 +78,7 @@ public interface ScriptService
*
* @throws ScriptException
*/
+ @Auditable(parameters = {"script", "model"})
public Object executeScriptString(String script, Map model)
throws ScriptException;
}
diff --git a/source/java/org/alfresco/service/cmr/repository/TemplateService.java b/source/java/org/alfresco/service/cmr/repository/TemplateService.java
index ff278cd529..5ba59bba24 100644
--- a/source/java/org/alfresco/service/cmr/repository/TemplateService.java
+++ b/source/java/org/alfresco/service/cmr/repository/TemplateService.java
@@ -18,6 +18,8 @@ package org.alfresco.service.cmr.repository;
import java.io.Writer;
+import org.alfresco.service.Auditable;
+
/**
* Template Service.
*
@@ -43,6 +45,7 @@ public interface TemplateService
*
* @return output of the template process as a String
*/
+ @Auditable(parameters = {"engine", "template", "model"})
public String processTemplate(String engine, String template, Object model)
throws TemplateException;
@@ -54,6 +57,7 @@ public interface TemplateService
* @param model Object model to process template against
* @param out Writer object to send output too
*/
+ @Auditable(parameters = {"engine", "template", "model", "out"})
public void processTemplate(String engine, String template, Object model, Writer out)
throws TemplateException;
@@ -68,6 +72,7 @@ public interface TemplateService
*
* @throws TemplateException
*/
+ @Auditable(parameters = {"engine", "template", "model"})
public String processTemplateString(String engine, String template, Object model)
throws TemplateException;
@@ -82,6 +87,7 @@ public interface TemplateService
*
* @throws TemplateException
*/
+ @Auditable(parameters = {"engine", "template", "model", "out"})
public void processTemplateString(String engine, String template, Object model, Writer out)
throws TemplateException;
@@ -93,5 +99,6 @@ public interface TemplateService
*
* @return TemplateProcessor
*/
+ @Auditable(warn = true, parameters = {"engine"})
public TemplateProcessor getTemplateProcessor(String engine);
}
diff --git a/source/java/org/alfresco/service/cmr/rule/RuleService.java b/source/java/org/alfresco/service/cmr/rule/RuleService.java
index 06fe3a9adc..6117440b98 100644
--- a/source/java/org/alfresco/service/cmr/rule/RuleService.java
+++ b/source/java/org/alfresco/service/cmr/rule/RuleService.java
@@ -18,6 +18,7 @@ package org.alfresco.service.cmr.rule;
import java.util.List;
+import org.alfresco.service.Auditable;
import org.alfresco.service.cmr.repository.NodeRef;
/**
@@ -32,6 +33,7 @@ public interface RuleService
*
* @return a list of rule types
*/
+ @Auditable
public List getRuleTypes();
/**
@@ -40,6 +42,7 @@ public interface RuleService
* @param name the name of the rule type
* @return the rule type, null if not found
*/
+ @Auditable(parameters = {"name"})
public RuleType getRuleType(String name);
/**
@@ -49,6 +52,7 @@ public interface RuleService
* @param nodeRef the node reference
* @return true if the rules are enabled, false otherwise
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public boolean rulesEnabled(NodeRef nodeRef);
/**
@@ -57,6 +61,7 @@ public interface RuleService
*
* @param nodeRef the node reference
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public void disableRules(NodeRef nodeRef);
/**
@@ -65,6 +70,7 @@ public interface RuleService
*
* @param nodeRef the node reference
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public void enableRules(NodeRef nodeRef);
/**
@@ -72,6 +78,7 @@ public interface RuleService
*
* @param rule the rule to disable
*/
+ @Auditable(parameters = {"rule"})
public void disableRule(Rule rule);
/**
@@ -79,6 +86,7 @@ public interface RuleService
*
* @param rule the rule to enable
*/
+ @Auditable(parameters = {"rule"})
public void enableRule(Rule rule);
/**
@@ -87,6 +95,7 @@ public interface RuleService
* @param nodeRef the node reference
* @return true if the node has rules associated, false otherwise
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public boolean hasRules(NodeRef nodeRef);
/**
@@ -99,6 +108,7 @@ public interface RuleService
* @param nodeRef the node reference
* @return a list of the rules associated with the node
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public List getRules(NodeRef nodeRef);
/**
@@ -114,6 +124,7 @@ public interface RuleService
* the result list or not
* @return a list of the rules associated with the node
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "includeInhertied"})
public List getRules(NodeRef nodeRef, boolean includeInhertied);
/**
@@ -126,6 +137,7 @@ public interface RuleService
* are returned
* @return a list of the rules associated with the node
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "includeInhertiedRuleType", "ruleTypeName"})
public List getRules(NodeRef nodeRef, boolean includeInhertiedRuleType, String ruleTypeName);
/**
@@ -134,6 +146,7 @@ public interface RuleService
* @param nodeRef the node reference
* @return a list of the rules associated with the node
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public int countRules(NodeRef nodeRef);
/**
@@ -143,6 +156,7 @@ public interface RuleService
* @param ruleId the rule id
* @return the rule corresponding ot the id
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "ruleId"})
public Rule getRule(NodeRef nodeRef, String ruleId);
/**
@@ -154,6 +168,7 @@ public interface RuleService
* @param ruleTypeName the name of the rule type
* @return the created rule
*/
+ @Auditable(parameters = {"ruleTypeName"})
public Rule createRule(String ruleTypeName);
/**
@@ -165,6 +180,7 @@ public interface RuleService
* @param nodeRef
* @param rule
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "rule"})
public void saveRule(NodeRef nodeRef, Rule rule);
/**
@@ -172,6 +188,7 @@ public interface RuleService
*
* @param nodeRef the actionable node reference
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "rule"})
public void removeRule(NodeRef nodeRef, Rule rule);
/**
@@ -179,5 +196,6 @@ public interface RuleService
*
* @param nodeRef the actionable node reference
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public void removeAllRules(NodeRef nodeRef);
}
diff --git a/source/java/org/alfresco/service/cmr/search/CategoryService.java b/source/java/org/alfresco/service/cmr/search/CategoryService.java
index d77978b4da..7651b93f19 100644
--- a/source/java/org/alfresco/service/cmr/search/CategoryService.java
+++ b/source/java/org/alfresco/service/cmr/search/CategoryService.java
@@ -18,6 +18,7 @@ package org.alfresco.service.cmr.search;
import java.util.Collection;
+import org.alfresco.service.Auditable;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
@@ -63,6 +64,7 @@ public interface CategoryService
* @param depth - the enumeration depth for what level to recover
* @return a collection of all the nodes found identified by their ChildAssocRef's
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"categoryRef", "mode", "depth"})
public Collection getChildren(NodeRef categoryRef, Mode mode, Depth depth );
/**
@@ -73,6 +75,7 @@ public interface CategoryService
* @param depth - the enumeration depth for what level to recover
* @return a collection of all the nodes found identified by their ChildAssocRef's
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"storeRef", "aspectQName", "depth"})
public Collection getCategories(StoreRef storeRef, QName aspectQName, Depth depth );
/**
@@ -80,6 +83,7 @@ public interface CategoryService
*
* @return
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"storeRef"})
public Collection getClassifications(StoreRef storeRef);
/**
@@ -89,6 +93,7 @@ public interface CategoryService
* @param aspectName
* @return
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"storeRef", "aspectName"})
public Collection getRootCategories(StoreRef storeRef, QName aspectName);
/**
@@ -96,6 +101,7 @@ public interface CategoryService
*
* @return
*/
+ @Auditable
public Collection getClassificationAspects();
/**
@@ -107,6 +113,7 @@ public interface CategoryService
* @param aspectName
* @param attributeName
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"storeRef", "aspectName", "attributeName"})
public NodeRef createClassifiction(StoreRef storeRef, QName aspectName, String attributeName);
/**
@@ -117,6 +124,7 @@ public interface CategoryService
* @param name
* @return
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"storeRef", "aspectName", "name"})
public NodeRef createRootCategory(StoreRef storeRef, QName aspectName, String name);
/**
@@ -126,6 +134,7 @@ public interface CategoryService
* @param name
* @return
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"parent", "name"})
public NodeRef createCategory(NodeRef parent, String name);
/**
@@ -134,6 +143,7 @@ public interface CategoryService
* @param storeRef
* @param aspectName
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"storeRef", "aspectName"})
public void deleteClassification(StoreRef storeRef, QName aspectName);
/**
@@ -141,5 +151,6 @@ public interface CategoryService
*
* @param nodeRef
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public void deleteCategory(NodeRef nodeRef);
}
diff --git a/source/java/org/alfresco/service/cmr/search/SearchService.java b/source/java/org/alfresco/service/cmr/search/SearchService.java
index 231265fee2..9f5a90998e 100644
--- a/source/java/org/alfresco/service/cmr/search/SearchService.java
+++ b/source/java/org/alfresco/service/cmr/search/SearchService.java
@@ -19,6 +19,7 @@ package org.alfresco.service.cmr.search;
import java.io.Serializable;
import java.util.List;
+import org.alfresco.service.Auditable;
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.Path;
@@ -62,6 +63,7 @@ public interface SearchService
* the value.
* @return Returns the query results
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"store", "language", "query", "attributePaths", "queryParameterDefinitions"})
public ResultSet query(StoreRef store, String language, String query, Path[] attributePaths,
QueryParameterDefinition[] queryParameterDefinitions);
@@ -77,6 +79,7 @@ public interface SearchService
* the query string - which may include parameters
* @return Returns the query results
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"store", "language", "query"})
public ResultSet query(StoreRef store, String language, String query);
/**
@@ -93,6 +96,7 @@ public interface SearchService
* the value.
* @return Returns the query results
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"store", "language", "query", "queryParameterDefinitions"})
public ResultSet query(StoreRef store, String language, String query,
QueryParameterDefinition[] queryParameterDefintions);
@@ -110,6 +114,7 @@ public interface SearchService
* selected nodes in xpath style syntax
* @return Returns the query results
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"store", "language", "query", "attributePaths"})
public ResultSet query(StoreRef store, String language, String query, Path[] attributePaths);
/**
@@ -123,12 +128,14 @@ public interface SearchService
* parameterisation for the canned query
* @return Returns the query results
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"store", "queryId", "queryParameters"})
public ResultSet query(StoreRef store, QName queryId, QueryParameter[] queryParameters);
/**
* Search using the given SearchParameters
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"searchParameters"})
public ResultSet query(SearchParameters searchParameters);
/**
@@ -147,6 +154,7 @@ public interface SearchService
* it follows all
* @return a list of all the child assoc relationships to the selected nodes
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"contextNodeRef", "xpath", "parameters", "namespacePrefixResolver", "followAllParentLinks"})
public List selectNodes(NodeRef contextNodeRef, String xpath, QueryParameterDefinition[] parameters,
NamespacePrefixResolver namespacePrefixResolver, boolean followAllParentLinks)
throws InvalidNodeRefException, XPathException;
@@ -169,6 +177,7 @@ public interface SearchService
* the xpath variant
* @return a list of all the child assoc relationships to the selected nodes
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"contextNodeRef", "xpath", "parameters", "namespacePrefixResolver", "followAllParentLinks", "language"})
public List selectNodes(NodeRef contextNodeRef, String xpath, QueryParameterDefinition[] parameters,
NamespacePrefixResolver namespacePrefixResolver, boolean followAllParentLinks, String language)
throws InvalidNodeRefException, XPathException;
@@ -189,6 +198,7 @@ public interface SearchService
* it follows all
* @return a list of property values
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"contextNodeRef", "xpath", "parameters", "namespacePrefixResolver", "followAllParentLinks"})
public List selectProperties(NodeRef contextNodeRef, String xpath,
QueryParameterDefinition[] parameters, NamespacePrefixResolver namespacePrefixResolver,
boolean followAllParentLinks) throws InvalidNodeRefException, XPathException;
@@ -211,6 +221,7 @@ public interface SearchService
* the xpath variant
* @return a list of property values
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"contextNodeRef", "xpath", "parameters", "namespacePrefixResolver", "followAllParentLinks", "language"})
public List selectProperties(NodeRef contextNodeRef, String xpath,
QueryParameterDefinition[] parameters, NamespacePrefixResolver namespacePrefixResolver,
boolean followAllParentLinks, String language) throws InvalidNodeRefException, XPathException;
@@ -227,6 +238,7 @@ public interface SearchService
* a Google-like pattern to search for in the property value
* @return Returns true if the pattern could be found - uses the default OR operator
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "propertyQName", "googleLikePattern"})
public boolean contains(NodeRef nodeRef, QName propertyQName, String googleLikePattern)
throws InvalidNodeRefException;
@@ -242,6 +254,7 @@ public interface SearchService
* a Google-like pattern to search for in the property value
* @return Returns true if the pattern could be found
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "propertyQName", "googleLikePattern", "defaultOperator"})
public boolean contains(NodeRef nodeRef, QName propertyQName, String googleLikePattern, SearchParameters.Operator defaultOperator)
throws InvalidNodeRefException;
@@ -259,6 +272,7 @@ public interface SearchService
* include full text search matches in the like test
* @return Returns true if the pattern could be found
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "propertyQName", "sqlLikePattern", "includeFTS"})
public boolean like(NodeRef nodeRef, QName propertyQName, String sqlLikePattern, boolean includeFTS)
throws InvalidNodeRefException;
}
diff --git a/source/java/org/alfresco/service/cmr/security/AuthenticationService.java b/source/java/org/alfresco/service/cmr/security/AuthenticationService.java
index 2cd7811e4c..65420fe4bb 100644
--- a/source/java/org/alfresco/service/cmr/security/AuthenticationService.java
+++ b/source/java/org/alfresco/service/cmr/security/AuthenticationService.java
@@ -19,6 +19,7 @@ package org.alfresco.service.cmr.security;
import java.util.Set;
import org.alfresco.repo.security.authentication.AuthenticationException;
+import org.alfresco.service.Auditable;
/**
* The authentication service defines the API for managing authentication information
@@ -36,6 +37,7 @@ public interface AuthenticationService
* @param password
* @throws AuthenticationException
*/
+ @Auditable(parameters = {"userName", "password"}, recordable = {true, false})
public void createAuthentication(String userName, char[] password) throws AuthenticationException;
/**
@@ -46,6 +48,7 @@ public interface AuthenticationService
* @param newPassword
* @throws AuthenticationException
*/
+ @Auditable(parameters = {"userName", "oldPassword", "newPassword"}, recordable = {true, false, false})
public void updateAuthentication(String userName, char[] oldPassword, char[] newPassword) throws AuthenticationException;
/**
@@ -55,6 +58,7 @@ public interface AuthenticationService
* @param newPassword
* @throws AuthenticationException
*/
+ @Auditable(parameters = {"userName", "newPassword"}, recordable = {true, false})
public void setAuthentication(String userName, char[] newPassword) throws AuthenticationException;
@@ -64,6 +68,7 @@ public interface AuthenticationService
* @param userName
* @throws AuthenticationException
*/
+ @Auditable(parameters = {"userName"})
public void deleteAuthentication(String userName) throws AuthenticationException;
/**
@@ -72,6 +77,7 @@ public interface AuthenticationService
* @param userName
* @param enabled
*/
+ @Auditable(parameters = {"userName", "enabled"})
public void setAuthenticationEnabled(String userName, boolean enabled) throws AuthenticationException;
/**
@@ -80,6 +86,7 @@ public interface AuthenticationService
* @param userName
* @return
*/
+ @Auditable(parameters = {"userName"})
public boolean getAuthenticationEnabled(String userName) throws AuthenticationException;
/**
@@ -90,6 +97,7 @@ public interface AuthenticationService
* @param password the passowrd
* @throws AuthenticationException
*/
+ @Auditable(parameters = {"userName", "password"}, recordable = {true, false})
public void authenticate(String userName, char[] password) throws AuthenticationException;
/**
@@ -97,6 +105,7 @@ public interface AuthenticationService
*
* @throws AuthenticationException
*/
+ @Auditable
public void authenticateAsGuest() throws AuthenticationException;
/**
@@ -105,6 +114,7 @@ public interface AuthenticationService
* @param userName the username
* @return Returns true if the authentication exists
*/
+ @Auditable(parameters = {"userName"})
public boolean authenticationExists(String userName);
/**
@@ -113,6 +123,7 @@ public interface AuthenticationService
* @return
* @throws AuthenticationException
*/
+ @Auditable
public String getCurrentUserName() throws AuthenticationException;
/**
@@ -121,6 +132,7 @@ public interface AuthenticationService
* @param userName
* @throws AuthenticationException
*/
+ @Auditable(parameters = {"userName"})
public void invalidateUserSession(String userName) throws AuthenticationException;
/**
@@ -129,6 +141,7 @@ public interface AuthenticationService
* @param ticket
* @throws AuthenticationException
*/
+ @Auditable(parameters = {"ticket"}, recordable = {false})
public void invalidateTicket(String ticket) throws AuthenticationException;
/**
@@ -137,18 +150,21 @@ public interface AuthenticationService
* @param ticket
* @throws AuthenticationException
*/
+ @Auditable(parameters = {"ticket"}, recordable = {false})
public void validate(String ticket) throws AuthenticationException;
/**
* Get the current ticket as a string
* @return
*/
+ @Auditable
public String getCurrentTicket();
/**
* Remove the current security information
*
*/
+ @Auditable
public void clearCurrentSecurityContext();
/**
@@ -156,7 +172,7 @@ public interface AuthenticationService
*
* @return
*/
-
+ @Auditable
public boolean isCurrentUserTheSystemUser();
/**
@@ -164,7 +180,7 @@ public interface AuthenticationService
*
* @return The domain name
*/
-
+ @Auditable
public Set getDomains();
/**
@@ -172,6 +188,7 @@ public interface AuthenticationService
*
* @return
*/
+ @Auditable
public Set getDomainsThatAllowUserCreation();
/**
@@ -179,6 +196,7 @@ public interface AuthenticationService
*
* @return
*/
+ @Auditable
public Set getDomainsThatAllowUserDeletion();
/**
@@ -186,6 +204,7 @@ public interface AuthenticationService
*
* @return
*/
+ @Auditable
public Set getDomiansThatAllowUserPasswordChanges();
}
diff --git a/source/java/org/alfresco/service/cmr/security/AuthorityService.java b/source/java/org/alfresco/service/cmr/security/AuthorityService.java
index 14b6d28572..0febd7b08d 100644
--- a/source/java/org/alfresco/service/cmr/security/AuthorityService.java
+++ b/source/java/org/alfresco/service/cmr/security/AuthorityService.java
@@ -18,6 +18,8 @@ package org.alfresco.service.cmr.security;
import java.util.Set;
+import org.alfresco.service.Auditable;
+
/**
* The service that encapsulates authorities granted to users.
*
@@ -43,6 +45,7 @@ public interface AuthorityService
*
* @return true if the currently authenticated user has the admin authority
*/
+ @Auditable
public boolean hasAdminAuthority();
/**
@@ -50,6 +53,7 @@ public interface AuthorityService
*
* @return
*/
+ @Auditable
public Set getAuthorities();
/**
@@ -59,6 +63,7 @@ public interface AuthorityService
* the type of authorities.
* @return
*/
+ @Auditable(parameters = {"type"})
public Set getAllAuthorities(AuthorityType type);
/**
@@ -69,7 +74,7 @@ public interface AuthorityService
* the type of the authority
* @return
*/
-
+ @Auditable(parameters = {"type"})
public Set getAllRootAuthorities(AuthorityType type);
/**
@@ -87,6 +92,7 @@ public interface AuthorityService
* @return the name of the authority (this will be the prefix, if any
* associated with the type appended with the short name)
*/
+ @Auditable(parameters = {"type", "parentName", "shortName"})
public String createAuthority(AuthorityType type, String parentName, String shortName);
/**
@@ -98,6 +104,7 @@ public interface AuthorityService
* @param childName -
* the string identifier for the child.
*/
+ @Auditable(parameters = {"parentName", "childName"})
public void addAuthority(String parentName, String childName);
/**
@@ -111,6 +118,7 @@ public interface AuthorityService
* @param childName -
* the string identifier for the child.
*/
+ @Auditable(parameters = {"parentName", "childName"})
public void removeAuthority(String parentName, String childName);
/**
@@ -118,6 +126,7 @@ public interface AuthorityService
*
* @param name
*/
+ @Auditable(parameters = {"name"})
public void deleteAuthority(String name);
/**
@@ -135,6 +144,7 @@ public interface AuthorityService
* find authorities at any depth
* @return
*/
+ @Auditable(parameters = {"type", "name", "immediate"})
public Set getContainedAuthorities(AuthorityType type, String name, boolean immediate);
/**
@@ -152,6 +162,7 @@ public interface AuthorityService
* limit to immediate parents or any ancestor.
* @return
*/
+ @Auditable(parameters = {"type", "name", "immediate"})
public Set getContainingAuthorities(AuthorityType type, String name, boolean immediate);
/**
@@ -160,6 +171,7 @@ public interface AuthorityService
* @param name
* @return
*/
+ @Auditable(parameters = {"name"})
public String getShortName(String name);
/**
@@ -170,6 +182,7 @@ public interface AuthorityService
* @param shortName
* @return
*/
+ @Auditable(parameters = {"type", "shortName"})
public String getName(AuthorityType type, String shortName);
/**
@@ -178,6 +191,7 @@ public interface AuthorityService
* @param name (the long name).
* @return
*/
+ @Auditable(parameters = {"name"})
public boolean authorityExists(String name);
}
diff --git a/source/java/org/alfresco/service/cmr/security/OwnableService.java b/source/java/org/alfresco/service/cmr/security/OwnableService.java
index d0f7af05aa..1c77740e86 100644
--- a/source/java/org/alfresco/service/cmr/security/OwnableService.java
+++ b/source/java/org/alfresco/service/cmr/security/OwnableService.java
@@ -16,6 +16,7 @@
*/
package org.alfresco.service.cmr.security;
+import org.alfresco.service.Auditable;
import org.alfresco.service.cmr.repository.NodeRef;
/**
@@ -31,6 +32,7 @@ public interface OwnableService
* @param nodeRef
* @return the username or null if the object has no owner
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public String getOwner(NodeRef nodeRef);
/**
@@ -39,6 +41,7 @@ public interface OwnableService
* @param nodeRef
* @param userName
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "userName"})
public void setOwner(NodeRef nodeRef, String userName);
/**
@@ -46,6 +49,7 @@ public interface OwnableService
*
* @param nodeRef
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public void takeOwnership(NodeRef nodeRef);
/**
@@ -54,5 +58,6 @@ public interface OwnableService
* @param nodeRef
* @return
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public boolean hasOwner(NodeRef nodeRef);
}
diff --git a/source/java/org/alfresco/service/cmr/security/PermissionService.java b/source/java/org/alfresco/service/cmr/security/PermissionService.java
index f0a02441e0..ea772ca324 100644
--- a/source/java/org/alfresco/service/cmr/security/PermissionService.java
+++ b/source/java/org/alfresco/service/cmr/security/PermissionService.java
@@ -18,6 +18,7 @@ package org.alfresco.service.cmr.security;
import java.util.Set;
+import org.alfresco.service.Auditable;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
@@ -119,6 +120,7 @@ public interface PermissionService
*
* @return the owner authority
*/
+ @Auditable
public String getOwnerAuthority();
/**
@@ -126,6 +128,7 @@ public interface PermissionService
*
* @return the All authorities
*/
+ @Auditable
public String getAllAuthorities();
/**
@@ -133,6 +136,7 @@ public interface PermissionService
*
* @return the All permission
*/
+ @Auditable
public String getAllPermission();
/**
@@ -143,6 +147,7 @@ public interface PermissionService
* the reference to the node
* @return the set of allowed permissions
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public Set getPermissions(NodeRef nodeRef);
/**
@@ -153,6 +158,7 @@ public interface PermissionService
* the reference to the node
* @return the set of allowed permissions
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public Set getAllSetPermissions(NodeRef nodeRef);
/**
@@ -161,6 +167,7 @@ public interface PermissionService
* @param nodeRef
* @return
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public Set getSettablePermissions(NodeRef nodeRef);
/**
@@ -169,6 +176,7 @@ public interface PermissionService
* @param nodeRef
* @return
*/
+ @Auditable(parameters = {"type"})
public Set getSettablePermissions(QName type);
/**
@@ -176,16 +184,18 @@ public interface PermissionService
* given node. (The default behaviour is to inherit permissions)
*
* @param nodeRef
- * @param perm
+ * @param permission
* @return
*/
- public AccessStatus hasPermission(NodeRef nodeRef, String perm);
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "permission"})
+ public AccessStatus hasPermission(NodeRef nodeRef, String permission);
/**
* Delete all the permission assigned to the node
*
* @param nodeRef
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public void deletePermissions(NodeRef nodeRef);
/**
@@ -194,6 +204,7 @@ public interface PermissionService
* @param nodeRef
* @param authority
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "authority"})
public void clearPermission(NodeRef nodeRef, String authority);
/**
@@ -203,6 +214,7 @@ public interface PermissionService
* @param authority the authority recipient
* @param permission the entry permission
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "authority", "permission"})
public void deletePermission(NodeRef nodeRef, String authority, String permission);
/**
@@ -210,10 +222,11 @@ public interface PermissionService
*
* @param nodeRef
* @param authority
- * @param perm
+ * @param permission
* @param allow
*/
- public void setPermission(NodeRef nodeRef, String authority, String perm, boolean allow);
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "authority", "permission", "allow"})
+ public void setPermission(NodeRef nodeRef, String authority, String permission, boolean allow);
/**
* Set the global inheritance behaviour for permissions on a node.
@@ -221,6 +234,7 @@ public interface PermissionService
* @param nodeRef
* @param inheritParentPermissions
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "inheritParentPermissions"})
public void setInheritParentPermissions(NodeRef nodeRef, boolean inheritParentPermissions);
/**
@@ -229,5 +243,6 @@ public interface PermissionService
* @param nodeRef
* @return inheritParentPermissions
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public boolean getInheritParentPermissions(NodeRef nodeRef);
}
diff --git a/source/java/org/alfresco/service/cmr/security/PersonService.java b/source/java/org/alfresco/service/cmr/security/PersonService.java
index b41d39623d..0274a5414a 100644
--- a/source/java/org/alfresco/service/cmr/security/PersonService.java
+++ b/source/java/org/alfresco/service/cmr/security/PersonService.java
@@ -20,6 +20,7 @@ import java.io.Serializable;
import java.util.Map;
import java.util.Set;
+import org.alfresco.service.Auditable;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
@@ -49,6 +50,7 @@ public interface PersonService
* @see #setCreateMissingPeople(boolean)
* @see #createMissingPeople()
*/
+ @Auditable(parameters = {"userName"})
public NodeRef getPerson(String userName);
/**
@@ -57,6 +59,7 @@ public interface PersonService
* @param userName the user name
* @return Returns true if the user exists, otherwise false
*/
+ @Auditable(parameters = {"userName"})
public boolean personExists(String userName);
/**
@@ -65,6 +68,7 @@ public interface PersonService
*
* @return true if people are created on demand and false otherwise.
*/
+ @Auditable
public boolean createMissingPeople();
/**
@@ -74,6 +78,7 @@ public interface PersonService
*
* @see #getPerson(String)
*/
+ @Auditable(parameters = {"createMissing"})
public void setCreateMissingPeople(boolean createMissing);
/**
@@ -84,6 +89,7 @@ public interface PersonService
*
* @return A set of QNames that identify properties that can be changed
*/
+ @Auditable
public Set getMutableProperties();
/**
@@ -93,6 +99,7 @@ public interface PersonService
* @param userName - the user for which the properties should be set.
* @param properties - the map of properties to set (as the NodeService)
*/
+ @Auditable(parameters = {"userName", "properties"})
public void setPersonProperties(String userName, Map properties);
/**
@@ -100,6 +107,7 @@ public interface PersonService
*
* @return true if this service allows mutation to people.
*/
+ @Auditable
public boolean isMutable();
/**
@@ -110,6 +118,7 @@ public interface PersonService
* @param properties
* @return
*/
+ @Auditable(parameters = {"properties"})
public NodeRef createPerson(Map properties);
/**
@@ -117,6 +126,7 @@ public interface PersonService
*
* @param userName
*/
+ @Auditable(parameters = {"userName"})
public void deletePerson(String userName);
/**
@@ -124,6 +134,7 @@ public interface PersonService
*
* @return a set of people in no specific order.
*/
+ @Auditable
public Set getAllPeople();
/**
@@ -131,6 +142,7 @@ public interface PersonService
*
* @return
*/
+ @Auditable
public NodeRef getPeopleContainer();
/**
@@ -138,5 +150,6 @@ public interface PersonService
*
* @return
*/
+ @Auditable
public boolean getUserNamesAreCaseSensitive();
}
diff --git a/source/java/org/alfresco/service/cmr/version/VersionService.java b/source/java/org/alfresco/service/cmr/version/VersionService.java
index c0b6481e40..07baf95e42 100644
--- a/source/java/org/alfresco/service/cmr/version/VersionService.java
+++ b/source/java/org/alfresco/service/cmr/version/VersionService.java
@@ -20,6 +20,7 @@ import java.io.Serializable;
import java.util.Collection;
import java.util.Map;
+import org.alfresco.service.Auditable;
import org.alfresco.service.cmr.repository.AspectMissingException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
@@ -42,6 +43,7 @@ public interface VersionService
*
* @return reference to the version store
*/
+ @Auditable
public StoreRef getVersionStoreReference();
/**
@@ -53,7 +55,7 @@ public interface VersionService
* If the node referenced does not or can not have the version aspect
* applied to it then an exception will be raised.
*
- * The version properties are sotred as version meta-data against the newly
+ * The version properties are stored as version meta-data against the newly
* created version.
*
* @param nodeRef a node reference
@@ -66,6 +68,7 @@ public interface VersionService
* @throws AspectMissingException
* thrown if the version aspect is missing
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "versionProperties"})
public Version createVersion(
NodeRef nodeRef,
Map versionProperties)
@@ -80,7 +83,7 @@ public interface VersionService
* If the node referenced does not or can not have the version aspect
* applied to it then an exception will be raised.
*
- * The version properties are sotred as version meta-data against the newly
+ * The version properties are stored as version meta-data against the newly
* created version.
*
* @param nodeRef a node reference
@@ -95,6 +98,7 @@ public interface VersionService
* @throws AspectMissingException
* thrown if the version aspect is missing
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "versionProperties", "versionChildren"})
public Collection createVersion(
NodeRef nodeRef,
Map versionProperties,
@@ -113,6 +117,7 @@ public interface VersionService
* @throws AspectMissingException
* thrown if the version aspect is missing
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "versionProperties"})
public Collection createVersion(
Collection nodeRefs,
Map versionProperties)
@@ -131,6 +136,7 @@ public interface VersionService
* @throws AspectMissingException
* thrown if the version aspect is missing
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public VersionHistory getVersionHistory(NodeRef nodeRef)
throws AspectMissingException;
@@ -142,6 +148,7 @@ public interface VersionService
* @param nodeRef the node reference
* @return the version object for the current version
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public Version getCurrentVersion(NodeRef nodeRef);
/**
@@ -153,6 +160,7 @@ public interface VersionService
*
* @param nodeRef the node reference
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public void revert(NodeRef nodeRef);
/**
@@ -163,6 +171,7 @@ public interface VersionService
* @param nodeRef the node reference
* @param deep true if a deep revert is to be performed, flase otherwise
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "deep"})
public void revert(NodeRef nodeRef, boolean deep);
/**
@@ -173,6 +182,7 @@ public interface VersionService
* @param nodeRef the node reference
* @param version the version to revert to
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "version"})
public void revert(NodeRef nodeRef, Version version);
/**
@@ -194,6 +204,7 @@ public interface VersionService
* @param version the version to revert to
* @param deep true is a deep revert is to be performed, false otherwise.
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "version", "deep"})
public void revert(NodeRef nodeRef, Version version, boolean deep);
/**
@@ -207,6 +218,7 @@ public interface VersionService
* @param assocQName the assoc qname
* @return the newly restored node reference
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "parentNodeRef", "assocTypeQName", "assocQName"})
public NodeRef restore(
NodeRef nodeRef,
NodeRef parentNodeRef,
@@ -214,12 +226,12 @@ public interface VersionService
QName assocQName);
/**
- * Restores a node not currenlty present in the store, but that has a version
+ * Restores a node not currently present in the store, but that has a version
* history.
*
* The restored node will be at the head (most resent version).
*
- * Resoration will fail if there is no version history for the specified node id in
+ * Restoration will fail if there is no version history for the specified node id in
* the specified store.
*
* If the node already exists in the store then an exception will be raised.
@@ -230,13 +242,14 @@ public interface VersionService
*
* @param nodeRef the node reference to a node that no longer exists in
* the store
- * @param parentNodeRef the new parent of the resotred node
+ * @param parentNodeRef the new parent of the restored node
* @param assocTypeQName the assoc type qname
* @param assocQName the assoc qname
- * @param deep true is a deep revert shoudl be performed once the node has been
+ * @param deep true is a deep revert should be performed once the node has been
* restored, false otherwise
* @return the newly restored node reference
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef", "parentNodeRef", "assocTypeQName", "assocQName", "deep"})
public NodeRef restore(
NodeRef nodeRef,
NodeRef parentNodeRef,
@@ -247,7 +260,7 @@ public interface VersionService
/**
* Delete the version history associated with a node reference.
*
- * This operation is perminant, all versions in the version history are
+ * This operation is permanent, all versions in the version history are
* deleted and cannot be retrieved.
*
* The current version label for the node reference is reset and any subsequent versions
@@ -256,6 +269,7 @@ public interface VersionService
* @param nodeRef the node reference
* @throws AspectMissingException thrown if the version aspect is missing
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"nodeRef"})
public void deleteVersionHistory(NodeRef nodeRef)
throws AspectMissingException;
}
diff --git a/source/java/org/alfresco/service/cmr/view/ExporterService.java b/source/java/org/alfresco/service/cmr/view/ExporterService.java
index 0bb2b64d7c..9c91198d75 100644
--- a/source/java/org/alfresco/service/cmr/view/ExporterService.java
+++ b/source/java/org/alfresco/service/cmr/view/ExporterService.java
@@ -18,6 +18,8 @@ package org.alfresco.service.cmr.view;
import java.io.OutputStream;
+import org.alfresco.service.Auditable;
+
/**
* Exporter Service
@@ -36,6 +38,7 @@ public interface ExporterService
* @param parameters export parameters
* @param progress exporter callback for tracking progress of export
*/
+ @Auditable(parameters = {"viewWriter", "parameters", "progress"})
public void exportView(OutputStream viewWriter, ExporterCrawlerParameters parameters, Exporter progress)
throws ExporterException;
@@ -48,6 +51,7 @@ public interface ExporterService
* @param parameters export parameters
* @param progress exporter callback for tracking progress of export
*/
+ @Auditable(parameters = {"exportHandler", "parameters", "progress"})
public void exportView(ExportPackageHandler exportHandler, ExporterCrawlerParameters parameters, Exporter progress)
throws ExporterException;
@@ -59,6 +63,7 @@ public interface ExporterService
* @param parameters export parameters
* @param progress exporter callback for tracking progress of export
*/
+ @Auditable(parameters = {"exporter", "parameters", "progress"})
public void exportView(Exporter exporter, ExporterCrawlerParameters parameters, Exporter progress);
}
diff --git a/source/java/org/alfresco/service/cmr/view/ImporterService.java b/source/java/org/alfresco/service/cmr/view/ImporterService.java
index 5d68941897..5c9e22c6db 100644
--- a/source/java/org/alfresco/service/cmr/view/ImporterService.java
+++ b/source/java/org/alfresco/service/cmr/view/ImporterService.java
@@ -18,6 +18,8 @@ package org.alfresco.service.cmr.view;
import java.io.Reader;
+import org.alfresco.service.Auditable;
+
/**
* Importer Service. Entry point for importing xml data sources into the Repository.
@@ -36,6 +38,7 @@ public interface ImporterService
* @param binding property values used for binding property place holders in import stream
* @param progress progress monitor (optional)
*/
+ @Auditable(parameters = {"viewReader", "location", "binding", "progress"})
public void importView(Reader viewReader, Location location, ImporterBinding binding, ImporterProgress progress)
throws ImporterException;
@@ -50,6 +53,7 @@ public interface ImporterService
* @param binding property values used for binding property place holders in import stream
* @param progress progress monitor (optional)
*/
+ @Auditable(parameters = {"importHandler", "location", "binding", "progress"})
public void importView(ImportPackageHandler importHandler, Location location, ImporterBinding binding, ImporterProgress progress)
throws ImporterException;
diff --git a/source/java/org/alfresco/service/cmr/view/RepositoryExporterService.java b/source/java/org/alfresco/service/cmr/view/RepositoryExporterService.java
index 99bb20042c..ab027f3013 100644
--- a/source/java/org/alfresco/service/cmr/view/RepositoryExporterService.java
+++ b/source/java/org/alfresco/service/cmr/view/RepositoryExporterService.java
@@ -18,6 +18,7 @@ package org.alfresco.service.cmr.view;
import java.io.File;
+import org.alfresco.service.Auditable;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
@@ -38,6 +39,7 @@ public interface RepositoryExporterService
* @param packageName package name prefix for export .acp files
* @return list of temporary export files
*/
+ @Auditable(parameters = {"packageName"})
public FileExportHandle[] export(String packageName);
/**
@@ -49,6 +51,7 @@ public interface RepositoryExporterService
* @param packageName package name prefix for export .acp files
* @return list of repository held export files
*/
+ @Auditable(key = Auditable.Key.ARG_0, parameters = {"repositoryDestination", "packageName"})
public RepositoryExportHandle[] export(NodeRef repositoryDestination, String packageName);
/**
@@ -58,6 +61,7 @@ public interface RepositoryExporterService
* @param packageName package name prefix for export .acp files
* @return list of export files
*/
+ @Auditable(parameters = {"directoryDestination", "packageName"})
public FileExportHandle[] export(File directoryDestination, String packageName);
diff --git a/source/java/org/alfresco/service/descriptor/DescriptorService.java b/source/java/org/alfresco/service/descriptor/DescriptorService.java
index f1695228ed..75c3af7be7 100644
--- a/source/java/org/alfresco/service/descriptor/DescriptorService.java
+++ b/source/java/org/alfresco/service/descriptor/DescriptorService.java
@@ -16,6 +16,7 @@
*/
package org.alfresco.service.descriptor;
+import org.alfresco.service.NotAuditable;
import org.alfresco.service.license.LicenseDescriptor;
@@ -32,6 +33,7 @@ public interface DescriptorService
*
* @return server descriptor
*/
+ @NotAuditable
public Descriptor getServerDescriptor();
/**
@@ -41,6 +43,7 @@ public interface DescriptorService
*
* @return repository descriptor
*/
+ @NotAuditable
public Descriptor getInstalledRepositoryDescriptor();
/**
@@ -48,6 +51,7 @@ public interface DescriptorService
*
* @return the license descriptor
*/
+ @NotAuditable
public LicenseDescriptor getLicenseDescriptor();
}
diff --git a/source/java/org/alfresco/service/license/LicenseService.java b/source/java/org/alfresco/service/license/LicenseService.java
index e0ae017b24..f325ac73c5 100644
--- a/source/java/org/alfresco/service/license/LicenseService.java
+++ b/source/java/org/alfresco/service/license/LicenseService.java
@@ -16,6 +16,8 @@
*/
package org.alfresco.service.license;
+import org.alfresco.service.NotAuditable;
+
/**
* Contract for managing licenses
@@ -30,6 +32,7 @@ public interface LicenseService
*
* @throws LicenseException
*/
+ @NotAuditable
public void verifyLicense() throws LicenseException;
/**
@@ -38,6 +41,7 @@ public interface LicenseService
* @return license descriptor (or null, if one is not installed)
* @throws LicenseException
*/
+ @NotAuditable
public LicenseDescriptor getLicense() throws LicenseException;
}
diff --git a/source/java/org/alfresco/service/namespace/NamespaceService.java b/source/java/org/alfresco/service/namespace/NamespaceService.java
index 6ee1fda59a..9ef59abf26 100644
--- a/source/java/org/alfresco/service/namespace/NamespaceService.java
+++ b/source/java/org/alfresco/service/namespace/NamespaceService.java
@@ -16,6 +16,8 @@
*/
package org.alfresco.service.namespace;
+import org.alfresco.service.Auditable;
+
/**
@@ -83,6 +85,7 @@ public interface NamespaceService extends NamespacePrefixResolver
* @param prefix
* @param uri
*/
+ @Auditable(parameters = {"prefix", "uri"})
public void registerNamespace(String prefix, String uri);
@@ -91,6 +94,7 @@ public interface NamespaceService extends NamespacePrefixResolver
*
* @param prefix
*/
+ @Auditable(parameters = {"prefix"})
public void unregisterNamespace(String prefix);
}
diff --git a/source/java/org/alfresco/service/transaction/TransactionService.java b/source/java/org/alfresco/service/transaction/TransactionService.java
index 1ed004d6d5..b1ee1d7c6f 100644
--- a/source/java/org/alfresco/service/transaction/TransactionService.java
+++ b/source/java/org/alfresco/service/transaction/TransactionService.java
@@ -18,6 +18,8 @@ package org.alfresco.service.transaction;
import javax.transaction.UserTransaction;
+import org.alfresco.service.NotAuditable;
+
/**
* Contract for retrieving access to a user transaction.
*
@@ -34,6 +36,7 @@ public interface TransactionService
*
* @return Returns true if all transactions are read-only.
*/
+ @NotAuditable
public boolean isReadOnly();
/**
@@ -42,6 +45,7 @@ public interface TransactionService
*
* @return the user transaction
*/
+ @NotAuditable
UserTransaction getUserTransaction();
/**
@@ -53,6 +57,7 @@ public interface TransactionService
* system is in read-only mode.
* @return the user transaction
*/
+ @NotAuditable
UserTransaction getUserTransaction(boolean readOnly);
/**
@@ -64,6 +69,7 @@ public interface TransactionService
*
* @return Returns a non-propagating user transaction
*/
+ @NotAuditable
UserTransaction getNonPropagatingUserTransaction();
/**
@@ -78,5 +84,6 @@ public interface TransactionService
* system is in read-only mode.
* @return Returns a non-gating user transaction
*/
+ @NotAuditable
UserTransaction getNonPropagatingUserTransaction(boolean readOnly);
}