Alfresco cm:workingCopyOwner和cm:lockOwner之间的差异

Alfresco cm:workingCopyOwner和cm:lockOwner之间的差异,alfresco,alfresco-share,Alfresco,Alfresco Share,当我在Alfrece中跟踪代码时,我在node header.get.html.ftl <#if item.workingCopy??> <#if item.workingCopy.isWorkingCopy??> <#assign lockUser = node.properties["cm:workingCopyOwner"]> <#else> <#assign lockUser = nod

当我在Alfrece中跟踪代码时,我在
node header.get.html.ftl

<#if item.workingCopy??>
    <#if item.workingCopy.isWorkingCopy??>
        <#assign lockUser = node.properties["cm:workingCopyOwner"]>
    <#else>
        <#assign lockUser = node.properties["cm:lockOwner"]>
    </#if>
......
<#elseif>

......
我的理解是

当用户单击“脱机编辑””时,将创建文档的工作副本 workingCopyOwner与lockOwner相同


如果是这样,为什么我们要这样写?我的理解错了吗?

在露天,就像大多数CMS一样,你可以查看文档。 执行此操作时,原始文档将被锁定,并创建一个工作副本供您安全编辑

因此,在内容存储中实际上存在两个文档,即原始文档和工作副本

cm:workingCopyOwner
属性仅在工作副本节点上可用,而
cm:lockOwner
属性仅在原始文档节点上可用。 它们都拥有相同的功能信息(锁用户),但在不同的节点上


因此,在上面的代码中,它测试它是哪种节点(原始节点还是工作副本)通过测试
node.workingCopy???
node.workingCopy.isWorkingCopy
,然后相应地分配给锁用户的正确属性。

属性cm:workingCopyOwner属于方面cm:workingCopy,而cm:lockOwner属于cm:lockable

当您单击“脱机编辑”时,将创建节点的副本,并为您的用户指定方面cm:workingCopy,cm:workingCopyOwner。原始节点被分配了方面cm:lockable,这个节点获得属性cm:lockOwner。因此,是的,这两个属性获得相同的用户,但它们分配在不同的节点上


/Erik

除了@billerby已经解释过的内容之外,主要区别在于节点可以在未签出的情况下锁定(例如通过显式调用),而文档无法签出但未锁定

因此,
cm:workingCopy
cm:lockable
捕获文档的两个不同的生命周期阶段,尽管它们之间存在某种关联,但是在签出文档时,使用各自的属性声明锁的所有权是一致的