【问题标题】:Return custom permission list for node返回节点的自定义权限列表
【发布时间】:2015-06-15 15:36:35
【问题描述】:

我有一个需求,我想在某些情况下隐藏共享文档库中的删除操作。这些情况使我无法有效地使用属性装饰器扩展机制。 (源关联节点应该有一定的状态)。

浏览有关如何扩展 Alfresco Share 文档库的文档,有一些内容被描述为“权限列表”(http://docs.alfresco.com/4.2/concepts/doclib-repository-tier.html)(标题 3)

我不知道如何以正确的方式使用此扩展机制。我希望能够在存储库层中使用 nodeService 查找一些东西,并且在某些情况下从返回的权限列表中删除 Delete 权限。

[更新] 我的第一个想法当然是使用@mitpatoliya 在他的回答中提出的自定义评估器,它基于从服务器返回的 json 评估是否应该存在删除选项。但是,如果某个源关联节点具有特定的属性值,我的要求是隐藏该选项。为此,我必须从评估程序代码进行远程 REST 调用。如果可以的话,这是我想避免的事情。

【问题讨论】:

标签: alfresco alfresco-share


【解决方案1】:

隐藏动作的最佳方法是使用动作评估器。

因此您可以根据您的要求扩展任何一个动作评估器,然后覆盖 share-config-custom.xml 中的动作配置以在调用特定动作时隐藏该动作。

这里是开箱即用的操作评估器列表。

http://docs.alfresco.com/4.1/concepts/doclib-predefined-evaluators-reference.html

如果以上都不符合您的要求,您也可以创建自己的评估器。

https://forums.alfresco.com/forum/developer-discussions/alfresco-share-development/custom-action-evaluator-12132012-1900

【讨论】:

  • 是的,这是首选方式,但是我的具体要求使这个选项对于远程 REST 调用等有点复杂。我的第一个想法是使用自定义评估器和属性装饰器,但由于操作仅当源关联节点具有特定属性时才应删除,这是不可能的。
【解决方案2】:

好吧,我不知道这是否是这样做的预期方法,但我继承了 JSONConversionComponent.userPermissionsToJSON 方法,并使其工作。

【讨论】:

  • 要么您的问题不清楚,要么您的解决方案不正确。如果按照您的要求,您只需要隐藏操作,那么正确的解决方案是 mitpatoliya 描述的解决方案。
  • 如果这样,解决方案是正确的,在这种情况下,您将如何处理工具栏中提供的删除选项。
  • @MarcoAltieri 好吧,我更新了我的问题,为什么我在这种情况下选择不使用自定义评估器。你能具体说明我的问题中不清楚的地方吗?文档中提到我所做的扩展是实现我的目标的一种方式,这个解决方案可能有点奇怪,但它是一种实现方式。
  • @Krutik 该选项也不会出现在工具栏中,因为删除权限已从列表中删除。
【解决方案3】:

@billerby,你是对的,评估者通常需要执行对存储库的调用,但这是他们应该的工作方式。如果你有任何评估者,你可以找到这个调用是如何实现的。这是一个非常标准的实现,最好开始使用。至少,这是我的建议。

【讨论】:

  • 是的,我知道如何实现它,我仍然认为我的解决方案更适合这个特定的用例:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-20
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
  • 2017-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多