如何在webscript中设置/更改alfresco中文档的创建者

时间:2013-01-16 13:00:38

标签: alfresco

如何更改创作者'在Alfresco上传文件的webscript中的财产?

我正在使用Alfresco 4.2,顺便说一句。

最佳, d

3 个答案:

答案 0 :(得分:4)

“cm:creator”是受控审核的属性,无法直接更改。很像“cm:modifier”,当用户权限修改文档节点的内容/属性(内容实际上只是一个特殊属性)时,系统会更新它。

您可以通过Repository API更改文档的所有者。这是权限更改但仍然不会更改cm:creator属性(它不应该更改)。

答案 1 :(得分:3)

如果我没错 cm:创建者 cm:修饰符 cm:已创建 cm:已修改 等......这些都是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);

不要忘记在您声明bean的context.xml文件中添加:

<bean id="xxxxxxxx" 
      class="your class package"
  parent="webscript">
  <property name="nodeService" ref="NodeService" />
  ........
      <property name="policyBehaviourFilter" ref="policyBehaviourFilter" />     
</bean> 
祝你好运

答案 2 :(得分:1)

您可以查看this forum post

如上所述,在设置字段后,它不能再被更改。您可以或更改contentModel.xml以将cm:creator字段设置为默认值(即读取和写入)。

或者您可以立即复制文档并将FullyAuthenticatedUser设置为短时间,然后将其还原。您需要为它编写一些Java代码(例如,在Java Action中)。