diff --git a/source/java/org/alfresco/web/action/evaluator/CheckoutDocEvaluator.java b/source/java/org/alfresco/web/action/evaluator/CheckoutDocEvaluator.java index 53245939a1..6481f13dc6 100644 --- a/source/java/org/alfresco/web/action/evaluator/CheckoutDocEvaluator.java +++ b/source/java/org/alfresco/web/action/evaluator/CheckoutDocEvaluator.java @@ -49,7 +49,7 @@ public class CheckoutDocEvaluator implements ActionEvaluator FacesContext.getCurrentInstance()).getDictionaryService(); return dd.isSubClass(node.getType(), ContentModel.TYPE_CONTENT) && - ((node.hasPermission(PermissionService.CHECK_OUT) && + ((node.hasPermission(PermissionService.CHECK_OUT) && node.hasPermission(PermissionService.CREATE_CHILDREN) && (node.isLocked() == false && node.hasAspect(ContentModel.ASPECT_WORKING_COPY) == false))); } diff --git a/source/java/org/alfresco/web/ui/repo/component/UILockIcon.java b/source/java/org/alfresco/web/ui/repo/component/UILockIcon.java index 630b02868e..5f4cd6619f 100644 --- a/source/java/org/alfresco/web/ui/repo/component/UILockIcon.java +++ b/source/java/org/alfresco/web/ui/repo/component/UILockIcon.java @@ -31,8 +31,6 @@ import javax.faces.context.ResponseWriter; import javax.faces.el.ValueBinding; import org.alfresco.model.ContentModel; -import org.alfresco.service.cmr.lock.LockService; -import org.alfresco.service.cmr.lock.LockStatus; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.web.app.Application; @@ -117,9 +115,12 @@ public class UILockIcon extends SelfRenderingComponent ref = (NodeRef)val; if (nodeService.exists(ref) && nodeService.hasAspect(ref, ContentModel.ASPECT_LOCKABLE) == true) { - LockStatus lockStatus = getLockService(context).getLockStatus(ref); - locked = (lockStatus == LockStatus.LOCKED || lockStatus == LockStatus.LOCK_OWNER); - lockedOwner = (lockStatus == LockStatus.LOCK_OWNER); + String lockerUser = (String)nodeService.getProperty(ref, ContentModel.PROP_LOCK_OWNER); + if (lockerUser != null) + { + locked = true; + lockedOwner = (lockerUser.equals(Application.getCurrentUser(context).getUserName())); + } } } @@ -195,24 +196,6 @@ public class UILockIcon extends SelfRenderingComponent return service; } - /** - * Use Spring JSF integration to return the Lock Service bean instance - * - * @param context FacesContext - * - * @return Lock Service bean instance or throws exception if not found - */ - private static LockService getLockService(FacesContext context) - { - LockService service = Repository.getServiceRegistry(context).getLockService(); - if (service == null) - { - throw new IllegalStateException("Unable to obtain LockService bean reference."); - } - - return service; - } - // ------------------------------------------------------------------------------ // Strongly typed component property accessors