cm:workingCopyOwner和cm:lockOwner之间的区别

时间:2013-01-11 07:01:07

标签: alfresco alfresco-share

当我在alfresce中跟踪代码时,我在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相同。

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

3 个答案:

答案 0 :(得分:3)

属性cm:workingCopyOwner属于方面cm:workingCopy和cm:lockOwner属于cm:lockable。

单击“离线编辑”时,将创建节点的副本并为其指定纵横cm:workingCopy,cm:workingCopyOwner设置为您的用户。为原始节点分配了方面cm:lockable,这个获取属性cm:lockOwner。所以,是的,这两个属性获得了相同的用户,但这些用户被分配到不同的节点上。

/埃里克

答案 1 :(得分:3)

除了@billerby已经解释过的内容之外,主要区别在于节点可以在未经检出的情况下被锁定(例如通过显式locking调用),而不会发生检查文档的情况但没有锁定。

因此,cm:workingCopycm:lockable捕获文档的两个不同的(虽然是某种程度上相关的)生命周期阶段,并且在签出文档时使用相应的属性来声明锁所有权简单地保持一致

答案 2 :(得分:2)

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

因此,在内容存储库中实际存在2个文档,包括原始文档和工作副本。

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

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