2

如何在上传文档的 Alfresco 中更改 webscript 中的“创建者”属性?

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

最好的,D

4

3 回答 3

4

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

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

于 2013-01-16T15:35:06.370 回答
4

如果我没记错cm:creatorcm:modifiercm:createdcm: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

于 2013-11-07T11:27:19.217 回答
1

你可以看看这个论坛帖子

如前所述,设置该字段后,将无法再更改。您可以或更改 contentModel.xml 以将 cm:creator 字段设置为默认值(即读写)。

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

于 2013-01-16T18:41:40.567 回答