code: public boolean isLockableBy(CmsUser user) {
  
          if (getSystemLock().isPublish()) {
              return false;
          }
          if (getEditionLock().isUnlocked() && getSystemLock().isUnlocked()) {
              return true;
          }
          return getEditionLock().isOwnedBy(user);
      }
docs: Checks if a resource can be locked by a user.<p>
  
  The resource is not lockable if it already has a lock of type {@link CmsLockType#PUBLISH}.<p>
  
  The resource is lockable either
  - if it is currently unlocked
  - if it has a lock of another type set and the user is the lock owner
  
  @param user the user to test lockeability for
  
  @return <code>true</code> if this lock blocks any operation on the locked resource until it is unlocked