当我在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相同。
如果是的话,我们为什么要这样写呢?我的理解错了吗?
发布于 2013-01-11 09:52:04
在Alfresco中,与大多数CMS一样,您可以查看文档。这样做时,原始文档将被锁定,并为您安全地编辑创建一个工作副本。
因此,在内容存储中,实际上有两个文档,原件和工作副本都存在。
cm:workingCopyOwner属性仅在工作副本节点上可用,而cm:lockOwner属性仅在原始文档节点上可用。它们都持有相同的功能信息(锁用户),但在不同的节点上。
因此,在上面的代码中,它通过测试node.workingCopy??和node.workingCopy.isWorkingCopy来测试它是哪种节点(原始的还是工作的副本),然后相应地分配正确的属性给锁用户。
发布于 2013-01-11 09:52:19
属性cm:workingCopyOwner属于方面cm:workingCopy,cm:lockOwner属于cm:lockable。
当您单击“编辑脱机”时,将创建节点的副本并将方面cm:workingCopy,cm:workingCopyOwner设置为您的用户。原始节点被分配给方面cm:lockable,而这个节点得到属性cm:lockOwner。因此,是的,这两个属性具有相同的用户,但是这些属性在不同的节点上分配。
/Erik
发布于 2013-01-11 12:10:10
除了@billerby已经解释过的内容之外,主要的区别是可以在不签出(例如显式锁紧调用)的情况下锁定节点,而不可能签出文档而不锁定文档。
因此,cm:workingCopy和cm:lockable捕获了文档的两个不同的生命周期阶段,尽管它们之间存在某种联系,并且在签出文档时使用各自的属性声明锁所有权是一致的。
https://stackoverflow.com/questions/14273266
复制相似问题