diff --git a/source/java/org/alfresco/repo/webdav/WebDAVLockService.java b/source/java/org/alfresco/repo/webdav/WebDAVLockService.java index 5c60c53381..c1e8e39c71 100644 --- a/source/java/org/alfresco/repo/webdav/WebDAVLockService.java +++ b/source/java/org/alfresco/repo/webdav/WebDAVLockService.java @@ -21,10 +21,7 @@ package org.alfresco.repo.webdav; import javax.servlet.http.HttpSession; -import org.alfresco.service.Auditable; import org.alfresco.service.cmr.lock.LockService; -import org.alfresco.service.cmr.lock.LockStatus; -import org.alfresco.service.cmr.lock.LockType; import org.alfresco.service.cmr.repository.NodeRef; /** @@ -69,9 +66,15 @@ public interface WebDAVLockService * @param nodeRef the node reference * @return the lock status */ - @Auditable(parameters = { "nodeRef" }) LockInfo getLockInfo(NodeRef nodeRef); - + + /** + * Determines if the node is locked AND it's not a WRITE_LOCK for the current user.
+ * + * @return true if the node is locked AND it's not a WRITE_LOCK for the current user + */ + public boolean isLockedAndReadOnly(NodeRef nodeRef); + /** * Caches current session in a thread local variable. * diff --git a/source/java/org/alfresco/repo/webdav/WebDAVLockServiceImpl.java b/source/java/org/alfresco/repo/webdav/WebDAVLockServiceImpl.java index 17193aa8ff..9e1e672bc4 100644 --- a/source/java/org/alfresco/repo/webdav/WebDAVLockServiceImpl.java +++ b/source/java/org/alfresco/repo/webdav/WebDAVLockServiceImpl.java @@ -25,15 +25,13 @@ import java.util.List; import javax.servlet.http.HttpSession; import org.alfresco.model.ContentModel; +import org.alfresco.repo.lock.LockUtils; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; -import org.alfresco.service.Auditable; import org.alfresco.service.cmr.coci.CheckOutCheckInService; import org.alfresco.service.cmr.lock.LockService; import org.alfresco.service.cmr.lock.LockStatus; -import org.alfresco.service.cmr.lock.LockType; -import org.alfresco.service.cmr.model.FileInfo; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.transaction.TransactionService; @@ -365,12 +363,21 @@ public class WebDAVLockServiceImpl implements WebDAVLockService * @return the lock status */ @Override - @Auditable(parameters = {"nodeRef"}) public LockInfo getLockInfo(NodeRef nodeRef) { return lockStore.get(nodeRef); } + /** + * Determines if the node is locked AND it's not a WRITE_LOCK for the current user.
+ *
+ * @return true if the node is locked AND it's not a WRITE_LOCK for the current user
+ */
+ public boolean isLockedAndReadOnly(NodeRef nodeRef)
+ {
+ return LockUtils.isLockedAndReadOnly(nodeRef, this.lockService);
+ }
+
/**
* Add the given object
to the session list that is stored in session under listName
attribute
*