【问题标题】:Plone Permissions克隆权限
【发布时间】:2016-03-07 12:28:12
【问题描述】:

我在本书的帮助下使用 4.3.x 创建了一个 Plone 站点

专业开发克隆

所以我现在有 4 个成员:

  1. 经理
  2. 客户
  3. 票务员
  4. 员工

所以我根据角色自定义了一些权限,但我固定在某个点并且无法理解如何设置适当的权限 因为当我更改了我的权限时,它并没有反映在我的网站上,有两个选项,您可以在以下代码中看到:

mp = portal.tickets.manage_permission

mp(CancelAndReinstate, ['Manager', 'Staff'], 0)

mp('Access contents information', ['Manager','staff'], 0)

mp(permissions.ListFolderContents, ['Manager',], 1)

mp(permissions.View, ['Manager','Customer' ], 1)

portal.tickets.reindexObject()

这里 0 和 1 做了什么,因为这些更改没有反映在我的网站上,所以我无法理解概念。我想根据用户角色创建不同的菜单。

【问题讨论】:

  • 我在plone中也面临这种问题。
  • “反映我的网站”是什么意思?
  • 反映意味着更改没有实时显示@SteveM

标签: python plone plone-4.x zope3


【解决方案1】:

不知道什么是“portal.tickets”,但它似乎是一个网站的内容。如果是这样:你做错了。 您应该永远在 Plone 站点根目录之外的任何地方手动更新对象安全配置。

您可能需要为“tickets”文件夹和该文件夹下的内容定制工作流程。

【讨论】:

    【解决方案2】:

    manage_permission 的第三个参数告诉我们这个权限是否也继承自父文件夹:

    def manage_permission(permission_to_manage, roles=[], acquire=0):
        """Change the settings for the given permission.
    
        If optional arg acquire is true, then the roles for the permission
        are acquired, in addition to the ones specified, otherwise the
        permissions are restricted to only the designated roles.
        """
    

    (AccessControl/interfaces.py)

    【讨论】:

      【解决方案3】:

      在 Plone 中设置权限的最常见和最严格的方法是使用通用设置并将 rolemap.xml 添加到您的默认(或升级)配置文件中。 可以在以下位置找到非常好的和清晰的文档:http://docs.plone.org/develop/plone/security/custom_permissions.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-02
        • 2012-12-11
        • 2021-06-21
        • 2016-02-20
        • 2016-09-22
        相关资源
        最近更新 更多