4

下面的场景:

  • 用户登录到我的 Plone 5 站点。
  • 工具栏出现了,但他们没有选项可以用它做任何事情,因为他们在 Authenticated Group 中。

他们只能获得经过身份验证的访问权限以查看一些区域。如何禁止某些用户组的工具栏?或者最好的方法是什么?

4

6 回答 6

5

最简单的方法是使用 CSS。您可以提供隐藏工具栏的条件 CSS:

#plone-toolbar-container {display: none}

本文描述了一个非常简单的方法:http: //datakurre.pandala.org/2015/05/plonecustom-for-plone-5.html

请注意:工具栏还包含个人偏好部分,因此删除它也会隐藏一些用户的功能。

于 2015-09-28T17:23:08.253 回答
4

一个不错的方法是使用角色和权限。您可以通过覆盖工具栏并定义您自己的过滤权限的条件来仅隐藏Member角色(而不是编辑、审阅者和经理)的工具栏。ModifyPortalContent

这是一个示例,当您开发自己的依赖于z3c.jbot的 Add on 时。

  1. toolbar.pt模板的副本放在overridesAdd on 的目录中。这是模板的路径:plone/app/layout/viewlets/toolbar.pt. 将新文件重命名为plone.app.layout.viewlets.toolbar.pt以使其正常工作(请参阅 plone 文档)。

  2. 自定义模板中的主要条件。

    <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">
    
  3. 添加一些 CSS 以删除仅适用于成员角色的主体上的填充。

    userrole-member.plone-toolbar-left-default { padding-left:0 }
    

现在为用户提供一些新的链接,/@@personal-preferences然后/logout你就完成了。

于 2016-02-11T10:06:15.610 回答
2

还有其他方法可以禁用工具栏:

请注意,虽然其中任何一个都将删除工具栏,但该body标签仍将包含一个plone-toolbar-left-defaultCSS 类,该类将导致页面被填充(即,将有一个工具栏大小的空白区域)。因此必须覆盖其 CSS,或者
必须覆盖plone_layout 视图的 bodyClass 方法,以便不再生成 CSS 类。

现有的 Plone 文档有关于如何使主题规则有条件或有条件地覆盖模板的说明。

于 2015-11-02T07:44:53.647 回答
1

在 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>
于 2018-02-02T10:54:41.110 回答
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;
}

额外做:

  • 隐藏工具栏时修复边距(body.userrole-editor.plone-toolbar-top-expanded ....)
  • 显示下拉菜单(登录用户名:useractions)而不是工具栏
于 2016-05-02T10:00:20.457 回答
0

我想要工具栏而不是contentviewplone-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">
于 2018-02-21T15:42:49.033 回答