在 Plone 中添加对控制面板 configlet 的新权限

Adding new permission to control panel configlet in Plone

我正在向插件添加新权限,以允许具有站点管理员角色的用户能够访问其控制面板 configlet。

我关注了 Plone's documentation on creating custom permissions,但我不明白 rolemap.xml 文件的必要性,因为我的许可已经过期并且 运行 没有它:

<configure xmlns="http://namespaces.zope.org/zope"
    xmlns:browser="http://namespaces.zope.org/browser">

  ...

  <permission
      id="collective.upload.Setup"
      title="collective.upload: Setup">
    <role name="Manager"/>
    <role name="Site Administrator"/>
  </permission>

  <browser:page
      name="upload-settings"
      for="Products.CMFPlone.interfaces.IPloneSiteRoot"
      class="collective.upload.controlpanel.UploadSettingsControlPanel"
      permission="collective.upload.Setup"
      />

</configure>

我是否需要在这里使用 rolemap.xml

对于创建您不需要任何新权限rolemap.xml:权限将使用默认设置创建,您可以在 Zope 应用程序的根目录中看到, 但您几乎没有可见的角色。

rolemap.xml 用于在安装插件的 Plone 站点上下文中为角色分配权限。

我担心你的配置有副作用:

  • 您已将权限分配给 ZMI root 中的 "Site Administrator" 角色(角色未定义)
  • 您只会在 Plone 站点根目录 "security" 选项卡中看到为权限选择的 "acquire" 检查

这里的东西仍然有效,但你没有从 ZMI 获得任何明确的视图 how/where 站点管理员获得此权限。

我发现使用 rolemap.xml 是一个更干净的解决方案(通常我也将 "acquire permission settings" 设置为 False)。