下面的情景:
他们只获得经过身份验证的访问权限才能查看一些区域。如何禁止某些用户组的工具栏?或者最好的方法是什么?
答案 0 :(得分:5)
最简单的方法是使用CSS。您可以提供隐藏工具栏的条件CSS:
#plone-toolbar-container {display: none}
本文介绍了一种非常简单的方法:http://datakurre.pandala.org/2015/05/plonecustom-for-plone-5.html
请注意:工具栏还包含个人偏好的部分,因此删除它也会隐藏某些用户的功能。
答案 1 :(得分:4)
一种不错的方法是使用角色和权限。您可以通过覆盖工具栏并定义自己的条件来隐藏Member
权限来隐藏ModifyPortalContent
角色的工具栏(而不是编辑器,审阅者和管理员)。
下面是一个示例,当您开发自己的Add时,依赖于 z3c.jbot 。
将toolbar.pt
模板的副本放入“添加”的overrides
目录中。这是模板的路径:plone/app/layout/viewlets/toolbar.pt
。将新文件重命名为plone.app.layout.viewlets.toolbar.pt
以使其生效(see plone docs)。
自定义模板中的主要条件。
<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">
变为
<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="python:checkPermission('Modify portal content',context)"
i18n:domain="plone">
添加一些CSS以仅删除成员角色的主体上的填充。
userrole-member.plone-toolbar-left-default { padding-left:0 }
现在为用户/@@personal-preferences
和/logout
提供一些新链接,您已完成。
答案 2 :(得分:2)
还有其他方法可以禁用工具栏:
index.html
file和/或the rules.xml
file Products.CMFPlone
main_template.pt
请注意,虽然其中任何一个都会删除工具栏,但body
标记仍然会包含一个plone-toolbar-left-default
CSS类,这将导致页面被填充(即,将有一个工具栏大小空的空间)。因此必须覆盖CSS,或者
必须覆盖bodyClass method of the plone_layout view,以便不再生成CSS类。
现有的Plone文档包含有关如何使主题规则成为条件或有条件地覆盖模板的说明。
答案 3 :(得分:1)
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;
}
另外做:
答案 4 :(得分:1)
在plone 5.1中,我们拥有“显示工具栏”权限。
在通用设置配置文件中,添加文件rolemap.xml
这里我只为具有角色编辑器,站点管理员,管理员(将其隐藏在成员中)的用户显示工具栏。添加成员只是将其隐藏为Authenticated而没有成员角色。
<?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>
答案 5 :(得分:0)
我想要工具栏但没有contentview
图标和plone-toolbar-main里面的链接,所以我编辑了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">
...
<ul class="plone-toolbar-main">
<div
tal:condition="python:checkPermission('Modify portal
content',context)"
tal:replace="structure view/base_render">