如何在上传文档的 Alfresco 中更改 webscript 中的“创建者”属性?
我正在使用 Alfresco 4.2,顺便说一句。
最好的,D
“cm:creator”是一个受控的审计属性,不能直接更改。很像“cm:modifier”,当用户权限修改文档节点的内容/属性(内容实际上只是一个特殊属性)时,系统会更新它。
您可以通过存储库 API 更改文档的所有者。虽然这是一个权限更改,但仍不会更改 cm:creator 属性(它不应该)。
如果我没记错cm:creator、cm:modifier、cm:created、cm:modified等......是 Alfresco 中的可审计属性,这意味着无法手动更新,因为它们由 Alfresco 管理。
我开发了一个 java 支持的 webscript,并添加了这个工作正常的代码(更新创建者和修饰符属性):
// Disable auditable aspect to allow change properties of cm:auditable aspect
policyBehaviourFilter.disableBehaviour(nodeRef, ContentModel.ASPECT_AUDITABLE);
// Update properties of cm:auditable aspect
nodeService.setProperty(nodeRef, ContentModel.PROP_CREATOR, "xxxxxx");
nodeService.setProperty(nodeRef, ContentModel.PROP_MODIFIER, "xxxxxx");
// Enable auditable aspect
policyBehaviourFilter.enableBehaviour(nodeRef, ContentModel.ASPECT_AUDITABLE);
Don't forget to add in your context.xml file where you declare your beans:
<bean id="xxxxxxxx"
class="your class package"
parent="webscript">
<property name="nodeService" ref="NodeService" />
........
<property name="policyBehaviourFilter" ref="policyBehaviourFilter" />
</bean>
Good luck
你可以看看这个论坛帖子。
如前所述,设置该字段后,将无法再更改。您可以或更改 contentModel.xml 以将 cm:creator 字段设置为默认值(即读写)。
或者,您可以立即复制文档并将 FullyAuthenticatedUser 设置一小段时间,然后再将其还原。您将需要为它编写一些Java 代码(例如在Java 动作中)。