在Plone中的工作流程状态菜单中禁用“高级...”

时间:2012-08-10 14:50:16

标签: plone

我想在工作流程状态菜单中为管理员和站点管理员以外的其他角色禁用“高级...”(content_status_history)链接。是否有我可以用来做这个的许可?或者这个链接的许可是否伴随着过渡的存在?

2 个答案:

答案 0 :(得分:3)

链接的存在与工作流转换相关联。它链接到的表单提供了为当前对象上可用的转换设置的附加选项。没有权限控制它的存在;菜单项是硬编​​码的。

来自plone.app.contentmenu.menu source

    if len(results) > 0:
        results.append({ 'title'        : _(u'label_advanced', default=u'Advanced...'),
                         'description'  : '',
                         'action'       : url + '/content_status_history',
                         'selected'     : False,
                         'icon'         : None,
                         'extra'        : {'id': 'advanced', 'separator': 'actionSeparator', 'class': 'kssIgnore'},
                         'submenu'      : None,
                        })

要提供您自己的实现(如果满足某些条件,可能使用删除最后一个选项的子类),您必须使用override重新定义{{ 1}}注册。

browser:menu中,您必须使用以下overrides.zcml声明指出您自己的实现:

browser:menu

然后在 <browser:menu id="plone_contentmenu_workflow" title="The 'workflow' menu - allows the user to execute workflow transitions" class=".yourmodule.YourWorkflowMenu" /> 中创建一个yourmodule.py类,类似于:

YourWorkflowMenu

答案 1 :(得分:2)

您应该可以通过添加

来隐藏菜单项
a#advanced {
   display: none;
}

你的风格。

这是一个务实的解决方案,比较臃肿的前清洁解决方案。