获取' object_buttons'对象的动作

时间:2014-12-17 14:50:17

标签: plone plone-4.x

我正在尝试构建一个自定义文件夹列表,其中包含指向文件夹中对象的文档操作的快速链接。

要加载为给定对象obj定义的操作,我在浏览器视图中为该文件夹执行操作:

portal_actions = getToolByName(self.context, 'portal_actions')
actions = portal_actions.listActionInfos(object=obj, categories=('object_buttons',))

但由于某种原因,actions始终只包含复制操作。 删除对象重命名等缺失。当Plone UI与同一用户(Manager)一起使用时,我可以访问对象I的所有操作。

使用新的虚拟动作进行的实验表明,问题的根源必须是权限和条件检查listActionInfos执行。但在这里我被卡住了......比较用于检查操作的权限和条件表达式的评估上下文,发现浏览器视图的调用与对象的普通Plone UI之间没有显着差异。

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

我找到了问题的根源。

发布的代码工作得很好,但我设法说服Zope的安全机制使用与我的观点中的实际角色不同,权限较低的角色。不知何故,在视图的__init__方法中构建不同的浏览器视图对象会导致这种奇怪的行为。