如何为经过身份验证的用户组禁用Plone 5工具栏?
情况如下:如何为经过身份验证的用户组禁用Plone 5工具栏?,plone,plone-5.x,Plone,Plone 5.x,情况如下: 一个用户登录到我的Plone 5站点 工具栏将显示,但它们没有任何操作选项,因为它们位于经过身份验证的组中 他们只能通过身份验证访问几个区域。如何抑制某些用户组的工具栏?或者最好的方法是什么?最简单的方法是使用CSS。您可以提供隐藏工具栏的条件CSS: #plone-toolbar-container {display: none} 本文介绍了一种非常简单的方法: 请注意:工具栏还包含个人偏好部分,因此删除它也会隐藏一些用户功能。禁用工具栏还有其他方法: #plone-tool
- 一个用户登录到我的Plone 5站点
- 工具栏将显示,但它们没有任何操作选项,因为它们位于经过身份验证的组中
他们只能通过身份验证访问几个区域。如何抑制某些用户组的工具栏?或者最好的方法是什么?最简单的方法是使用CSS。您可以提供隐藏工具栏的条件CSS:
#plone-toolbar-container {display: none}
本文介绍了一种非常简单的方法:
请注意:工具栏还包含个人偏好部分,因此删除它也会隐藏一些用户功能。禁用工具栏还有其他方法:
#plone-toolbar-container {display: none}
- 将其从重氮主题中删除和/或
- 把它从
body
标记仍将包含一个plone toolbar left default
CSS类,该类将导致填充页面(即,将有一个工具栏大小的空白)。因此,必须覆盖该文件的CSS,或必须重写,以便不再生成CSS类
现有的Plone文档提供了如何使主题规则有条件或有条件地覆盖模板的说明。一个好方法是使用角色和权限。通过覆盖工具栏并定义自己在
ModifyPortalContent
权限上过滤的条件,您可以仅隐藏成员
角色的工具栏(而不是编辑、审阅者和管理者)
下面是一个示例,说明您在开发依赖于z3c.jbot的自己的附加组件
toolbar.pt
模板的副本放在加载项的overrides
目录中。这是模板的路径:plone/app/layout/viewlets/toolbar.pt
。将新文件重命名为plone.app.layout.viewlets.toolbar.pt以使其工作()
<section id="edit-bar" role="toolbar"
tal:define="portal_state view/portal_state;
personal_bar python: view.get_personal_bar()"
tal:condition="not: portal_state/anonymous"
i18n:domain="plone">
/@@personal preferences
和/logout
,您就完成了。Plone 5.1(dev):
我的简单且的CSS工作方法:
body.userrole-member #edit-zone {
display:none;
}
body.userrole-editor #edit-zone,
body.userrole-contributor #edit-zone,
body.userrole-reviewer #edit-zone {
display:inline-block;
}
另外要做:
- 修复隐藏工具栏时的边距(body.userrole-editor.plone-toolbar-top-expanded…)
- 显示下拉列表(登录用户名:useractions)而不是工具栏
- 在plone 5.1中,我们拥有“显示工具栏”的权限
在通用设置配置文件中,添加一个文件rolemap.xml
在这里,我仅为具有角色编辑器、站点管理员、管理员(对成员隐藏)的用户显示工具栏。添加成员以仅隐藏它以进行身份验证,而不使用成员角色
<?xml version="1.0"?>
<rolemap>
<permissions>
<permission name="Show Toolbar" acquire="False">
<role name="Manager"/>
<role name="Site Administrator"/>
<role name="Editor"/>
</permission>
</permissions>
</rolemap>
我想在plone Toolbar main中有工具栏,但不想有
contentview
图标和链接,所以我编辑了我的Toolbar.pt:
<section id="edit-bar" role="toolbar"
tal:define="portal_state view/portal_state;
personal_bar python: view.get_personal_bar();
checkPermission nocall:
context/portal_membership/checkPermission"
tal:condition="not: portal_state/anonymous"
i18n:domain="plone">
您不想禁用工具栏,否则用户将无法访问个人首选项和注销操作。CSS规则可以使用#plone toolbar container:not(.role editor)
扩展,然后为门户中的任何已知角色添加一行。这是可行的,只要你记得在添加角色时更新CSS,甚至可能在使用SASS时动态更新CSS。对不起,那一定是body:not(.role editor)#plone toolbar container
AFAIK,这只会使工具栏变空而不会折叠?
<section id="edit-bar" role="toolbar"
tal:define="portal_state view/portal_state;
personal_bar python: view.get_personal_bar();
checkPermission nocall:
context/portal_membership/checkPermission"
tal:condition="not: portal_state/anonymous"
i18n:domain="plone">
<ul class="plone-toolbar-main">
<div
tal:condition="python:checkPermission('Modify portal
content',context)"
tal:replace="structure view/base_render">