我想在工作流程状态菜单中为管理员和站点管理员以外的其他角色禁用“高级...”(content_status_history)链接。是否有我可以用来做这个的许可?或者这个链接的许可是否伴随着过渡的存在?
答案 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;
}
你的风格。
这是一个务实的解决方案,比较臃肿的前清洁解决方案。