mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Yet another merge from head to WCM-DEV2.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3774 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
202
source/java/org/alfresco/service/cmr/audit/AuditInfo.java
Normal file
202
source/java/org/alfresco/service/cmr/audit/AuditInfo.java
Normal file
@@ -0,0 +1,202 @@
|
||||
/*
|
||||
* Copyright (C) 2005 Alfresco, Inc.
|
||||
*
|
||||
* Licensed under the Mozilla Public License version 1.1
|
||||
* with a permitted attribution clause. You may obtain a
|
||||
* copy of the License at
|
||||
*
|
||||
* http://www.alfresco.org/legal/license.txt
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific
|
||||
* language governing permissions and limitations under the
|
||||
* License.
|
||||
*/
|
||||
package org.alfresco.service.cmr.audit;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.net.InetAddress;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.service.cmr.repository.StoreRef;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
|
||||
/**
|
||||
* A single entry in an audit trail
|
||||
*
|
||||
* @author Andy Hind
|
||||
*/
|
||||
public interface AuditInfo
|
||||
{
|
||||
/**
|
||||
* The identifier for the application that performed the audit. Method interceptors around public services will use the string 'SystemMethodInterceptor'.
|
||||
*
|
||||
* @return - the application (may not be null).
|
||||
*/
|
||||
public String getAuditApplication();
|
||||
|
||||
/**
|
||||
* The name of the method executed on a public service.
|
||||
*
|
||||
* @return - the method name - this may be null for external audit entries.
|
||||
*/
|
||||
public String getAuditMethod();
|
||||
|
||||
/**
|
||||
* The public service on which a method was invoked.
|
||||
*
|
||||
* @return - the service name - this may be null for external audit entries.
|
||||
*/
|
||||
public String getAuditService();
|
||||
|
||||
/**
|
||||
* The address for the client. (This will be null in version 1.4)
|
||||
*
|
||||
* @return - the client address - may be null.
|
||||
*/
|
||||
public String getClientAddress();
|
||||
|
||||
/**
|
||||
* The timestamp for the audit entry.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Date getDate();
|
||||
|
||||
/**
|
||||
* Is this entry recording an error?
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public boolean isFail();
|
||||
|
||||
/**
|
||||
* Was this audit entry subject to filtering (which must have been met if an entry is found). Filters are not applied in version 1.4.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public boolean isFiltered();
|
||||
|
||||
/**
|
||||
* Get the host address of the server machine.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getHostAddress();
|
||||
|
||||
/**
|
||||
* Get the ID of the key node.
|
||||
*
|
||||
* @return - the id of the key node - this may be null if there is no key or the key is not a node ref.
|
||||
*/
|
||||
public String getKeyGUID();
|
||||
|
||||
/**
|
||||
* The serialized properties on the key node, if one exists, after the method invocation. Note these values are serialized before the method is called so they are unaffected by
|
||||
* the method invocation. In V1.4 these are not stored.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Map<QName, Serializable> getKeyPropertiesAfter();
|
||||
|
||||
/**
|
||||
* The serialized properties on the key node, if one exists, before the method invocation. In V1.4 these are not stored.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Map<QName, Serializable> getKeyPropertiesBefore();
|
||||
|
||||
/**
|
||||
* The store ref for the key.
|
||||
*
|
||||
* @return - the store ref - this may be null if there is no key.
|
||||
*/
|
||||
public StoreRef getKeyStore();
|
||||
|
||||
/**
|
||||
* The message entered for application audit entries.
|
||||
*
|
||||
* @return - the audit message. This may be null, and will be null for audit entries generated from method invocations.
|
||||
*/
|
||||
public String getMessage();
|
||||
|
||||
/**
|
||||
* Get the serailized mehod arguments.
|
||||
*
|
||||
* These are not stored in V1.4.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Serializable[] getMethodArguments();
|
||||
|
||||
/**
|
||||
* Get the method arguments as strings.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String[] getMethodArgumentsAsStrings();
|
||||
|
||||
/**
|
||||
* Get the path to the key node, if one exists.
|
||||
*
|
||||
* @return - the path or null.
|
||||
*/
|
||||
public String getPath();
|
||||
|
||||
/**
|
||||
* The serialized value of the return object.
|
||||
*
|
||||
* This is not available in V1.4.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Serializable getReturnObject();
|
||||
|
||||
/**
|
||||
* Get the return object string value.
|
||||
*
|
||||
* @return - the string value of the return object. May be null if the method is of type void or returns null.
|
||||
*/
|
||||
public String getReturnObjectAsString();
|
||||
|
||||
/**
|
||||
* Get the session id.
|
||||
*
|
||||
* This is not stored in V1.4.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getSessionId();
|
||||
|
||||
/**
|
||||
* Get the deserialized error, if one occurred.
|
||||
*
|
||||
* @return the throwable or null.
|
||||
*/
|
||||
public Throwable getThrowable();
|
||||
|
||||
/**
|
||||
* In 1.4, get the error message (no stack trace).
|
||||
*
|
||||
* @return - the error message
|
||||
*/
|
||||
public String getThrowableAsString();
|
||||
|
||||
/**
|
||||
* Get the transaction id which caused the audit.
|
||||
*
|
||||
* @return the Tx id (not null).
|
||||
*/
|
||||
public String getTxId();
|
||||
|
||||
/**
|
||||
* Get the name of the user who caused the audit entry.
|
||||
*
|
||||
* @return - the user name / user authority (not null)
|
||||
*/
|
||||
public String getUserIdentifier();
|
||||
|
||||
}
|
@@ -16,6 +16,9 @@
|
||||
*/
|
||||
package org.alfresco.service.cmr.audit;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.alfresco.repo.audit.AuditState;
|
||||
import org.alfresco.service.NotAuditable;
|
||||
import org.alfresco.service.PublicService;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
@@ -81,5 +84,14 @@ public interface AuditService
|
||||
*/
|
||||
@NotAuditable
|
||||
public void audit(String source, String description, NodeRef key, Object... args);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the audit trail for a node ref.
|
||||
*
|
||||
* @param nodeRef - the node ref for which to get the audit trail.
|
||||
* @return - tha audit trail
|
||||
*/
|
||||
@NotAuditable
|
||||
public List<AuditInfo> getAuditTrail(NodeRef nodeRef);
|
||||
}
|
||||
|
@@ -59,6 +59,11 @@ public interface CopyService
|
||||
* not copied.
|
||||
* <p>
|
||||
* Source association are not copied.
|
||||
* <p>
|
||||
* <b>NOTE:</b> The top-level node has it's <b>cm:name</b> property removed for
|
||||
* associations that do not allow duplicately named children in order
|
||||
* to prevent any chance of a duplicate name clash. Reassign the
|
||||
* <b>cm:name</b> property and catch the {@link DuplicateChildNodeNameException}.
|
||||
*
|
||||
* @param sourceNodeRef the node reference used as the source of the copy
|
||||
* @param destinationParent the intended parent of the new node
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -34,6 +34,7 @@ import org.alfresco.repo.template.NodeSearchResultsMap;
|
||||
import org.alfresco.repo.template.SavedSearchResultsMap;
|
||||
import org.alfresco.repo.template.XPathResultsMap;
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.alfresco.service.cmr.audit.AuditInfo;
|
||||
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||
import org.alfresco.service.cmr.lock.LockStatus;
|
||||
import org.alfresco.service.cmr.security.AccessPermission;
|
||||
@@ -495,7 +496,7 @@ public final class TemplateNode implements Serializable
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Display path to this node
|
||||
* @return Display path to this node - the path built of 'cm:name' attribute values.
|
||||
*/
|
||||
public String getDisplayPath()
|
||||
{
|
||||
@@ -514,6 +515,14 @@ public final class TemplateNode implements Serializable
|
||||
return displayPath;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return QName path to this node. This can be used for Lucene PATH: style queries
|
||||
*/
|
||||
public String getQnamePath()
|
||||
{
|
||||
return this.services.getNodeService().getPath(this.nodeRef).toPrefixString(this.services.getNamespaceService());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the small icon image for this node
|
||||
*/
|
||||
@@ -652,6 +661,14 @@ public final class TemplateNode implements Serializable
|
||||
}
|
||||
|
||||
|
||||
// Audit API
|
||||
|
||||
|
||||
public List<AuditInfo> getAuditTrail()
|
||||
{
|
||||
return this.services.getAuditService().getAuditTrail(this.nodeRef);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// Misc helpers
|
||||
|
||||
|
@@ -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);
|
||||
|
||||
}
|
||||
|
@@ -111,6 +111,7 @@ public interface WorkflowService
|
||||
* @param workflowName workflow name e.g. jbpm://review
|
||||
* @return the deployed workflow definition
|
||||
*/
|
||||
@Auditable(parameters = {"workflowName"})
|
||||
public WorkflowDefinition getDefinitionByName(String workflowName);
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user