在 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)。
我正在向插件添加新权限,以允许具有站点管理员角色的用户能够访问其控制面板 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)。