requiredFor()
{
return whenRequired;
diff --git a/source/java/org/alfresco/repo/security/permissions/dynamic/LockOwnerDynamicAuthorityTest.java b/source/java/org/alfresco/repo/security/permissions/dynamic/LockOwnerDynamicAuthorityTest.java
index 4fa7bebea6..f08aba3297 100644
--- a/source/java/org/alfresco/repo/security/permissions/dynamic/LockOwnerDynamicAuthorityTest.java
+++ b/source/java/org/alfresco/repo/security/permissions/dynamic/LockOwnerDynamicAuthorityTest.java
@@ -54,33 +54,23 @@ import org.springframework.context.ApplicationContext;
* Test the lock owner dynamic authority
*
* @author andyh
- *
*/
public class LockOwnerDynamicAuthorityTest extends TestCase
{
private static ApplicationContext ctx = ApplicationContextHelper.getApplicationContext();
private NodeService nodeService;
-
private MutableAuthenticationService authenticationService;
-
private AuthenticationComponent authenticationComponent;
-
private MutableAuthenticationDao authenticationDAO;
-
private LockService lockService;
-
- private NodeRef rootNodeRef;
-
- private UserTransaction userTransaction;
-
private PermissionService permissionService;
-
private LockOwnerDynamicAuthority dynamicAuthority;
-
private CheckOutCheckInService checkOutCheckInService;
-
private OwnableService ownableService;
+
+ private NodeRef rootNodeRef;
+ private UserTransaction userTransaction;
/**
*
diff --git a/source/java/org/alfresco/repo/version/VersionMigratorTest.java b/source/java/org/alfresco/repo/version/VersionMigratorTest.java
index 45cae9d054..e0053b4795 100644
--- a/source/java/org/alfresco/repo/version/VersionMigratorTest.java
+++ b/source/java/org/alfresco/repo/version/VersionMigratorTest.java
@@ -431,7 +431,7 @@ public class VersionMigratorTest extends BaseVersionStoreTest
NodeRef nodeRef = nodeService.createNode(
rootNodeRef,
ContentModel.ASSOC_CHILDREN,
- QName.createQName("{test}MyVersionableNode"),
+ QName.createQName(TEST_NAMESPACE, "MyVersionableNode"),
TEST_TYPE_QNAME,
this.nodeProperties).getChildRef();
diff --git a/source/java/org/alfresco/service/cmr/coci/CheckOutCheckInService.java b/source/java/org/alfresco/service/cmr/coci/CheckOutCheckInService.java
index 44b08fcc55..09ac31db82 100644
--- a/source/java/org/alfresco/service/cmr/coci/CheckOutCheckInService.java
+++ b/source/java/org/alfresco/service/cmr/coci/CheckOutCheckInService.java
@@ -22,7 +22,6 @@ import java.io.Serializable;
import java.util.Map;
import org.alfresco.service.Auditable;
-import org.alfresco.service.PublicService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
@@ -176,4 +175,33 @@ public interface CheckOutCheckInService
*/
@Auditable(parameters = {"nodeRef"})
public NodeRef getWorkingCopy(NodeRef nodeRef);
+
+ /**
+ * Helper method to retrieve the original node (check-out source) for a working copy.
+ *
+ * A null node reference is returned if the node is not a working copy.
+ *
+ * @param nodeRef the (potential) working copy
+ * @return the original (source) node or null if it is not a working copy
+ */
+ @Auditable(parameters = {"nodeRef"})
+ public NodeRef getCheckedOut(NodeRef nodeRef);
+
+ /**
+ * Determine if a node is a working copy or not
+ *
+ * @param nodeRef the (potential) working copy
+ * @return true if the node is a working copy otherwise false
+ */
+ @Auditable(parameters = {"nodeRef"})
+ public boolean isWorkingCopy(NodeRef nodeRef);
+
+ /**
+ * Determine if a node has been checked out or not
+ *
+ * @param nodeRef the (potentially) checked out node
+ * @return true if the node has been checked out otherwise false
+ */
+ @Auditable(parameters = {"nodeRef"})
+ public boolean isCheckedOut(NodeRef nodeRef);
}
diff --git a/source/java/org/alfresco/service/cmr/lock/LockService.java b/source/java/org/alfresco/service/cmr/lock/LockService.java
index d200d06c5b..c47652a4a7 100644
--- a/source/java/org/alfresco/service/cmr/lock/LockService.java
+++ b/source/java/org/alfresco/service/cmr/lock/LockService.java
@@ -22,7 +22,6 @@ import java.util.Collection;
import java.util.List;
import org.alfresco.service.Auditable;
-import org.alfresco.service.PublicService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
@@ -137,7 +136,7 @@ public interface LockService
throws UnableToAquireLockException;
/**
- * Removes the lock on a node.
+ * Removes the lock on a node; if there is no lock then nothing is done.
*
* The user must have sufficient permissions to remove the lock (ie: be the
* owner of the lock or have admin rights) otherwise an exception will be raised.
diff --git a/source/java/org/alfresco/service/cmr/repository/CopyService.java b/source/java/org/alfresco/service/cmr/repository/CopyService.java
index 27ad0dedd7..92cd2f5a5e 100644
--- a/source/java/org/alfresco/service/cmr/repository/CopyService.java
+++ b/source/java/org/alfresco/service/cmr/repository/CopyService.java
@@ -19,10 +19,10 @@
package org.alfresco.service.cmr.repository;
import java.util.List;
-import java.util.Set;
import org.alfresco.query.PagingRequest;
import org.alfresco.query.PagingResults;
+import org.alfresco.repo.security.permissions.PermissionCheckValue;
import org.alfresco.service.Auditable;
import org.alfresco.service.namespace.QName;
@@ -160,6 +160,16 @@ public interface CopyService
@Auditable(parameters = {"sourceNodeRef", "destinationNodeRef"})
public void copy(NodeRef sourceNodeRef, NodeRef destinationNodeRef);
+ /**
+ * Get the original for a given copied node
+ *
+ * @param copiedNodeRef the copied node reference
+ * @return the original node reference or null if it isn't a
+ * copy or the original has been deleted
+ */
+ @Auditable(parameters = {"nodeRef"})
+ public NodeRef getOriginal(NodeRef copiedNodeRef);
+
/**
* Gets all the copies of a given node that have been made using this service.
*
@@ -176,19 +186,15 @@ public interface CopyService
* @author Derek Hulley
* @since 4.0
*/
- public class CopyInfo
+ public class CopyInfo implements PermissionCheckValue
{
private final NodeRef nodeRef;
private final String name;
- private final NodeRef parentNodeRef;
- private final String parentName;
- public CopyInfo(NodeRef nodeRef, String name, NodeRef parentNodeRef, String parentName)
+ public CopyInfo(NodeRef nodeRef, String name)
{
this.nodeRef = nodeRef;
this.name = name;
- this.parentNodeRef = parentNodeRef;
- this.parentName = parentName;
}
/**
@@ -206,22 +212,6 @@ public interface CopyService
{
return name;
}
-
- /**
- * @return the parent of the node copy
- */
- public NodeRef getParentNodeRef()
- {
- return parentNodeRef;
- }
-
- /**
- * @return the name of the parent of the node copy
- */
- public String getParentName()
- {
- return parentName;
- }
}
/**
@@ -231,7 +221,7 @@ public interface CopyService
* @param pagingRequest page request details
* @return the page(s) of nodes that were copied from the given node
*/
- @Auditable(parameters = {"nodeRef"})
+ @Auditable(parameters = {"originalNodeRef"})
public PagingResults getCopies(NodeRef originalNodeRef, PagingRequest pagingRequest);
/**
@@ -243,10 +233,9 @@ public interface CopyService
* @param pagingRequest page request details
* @return the page(s) of nodes that were copied from the given node
*/
- @Auditable(parameters = {"nodeRef"})
+ @Auditable(parameters = {"originalNodeRef", "copyParentNodeRef"})
public PagingResults getCopies(
NodeRef originalNodeRef,
NodeRef copyParentNodeRef,
- Set copyNodeAspectsToIgnore,
PagingRequest pagingRequest);
}