gpt4 book ai didi

plone - 在 Plone 4 中重新定义浏览器 View 的安全性

转载 作者:行者123 更新时间:2023-12-04 22:50:29 27 4
gpt4 key购买 nike

我想重新定义 stock folder_contents 浏览器 View 的安全性,以便只有具有 Reviewer 角色的成员才能访问它。

该类在 plone.app.content.browser.foldercontents.FolderContentsView 中定义

在我的 custom.policy 产品中,我有

浏览器/configure.zcml:

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

<browser:page
for="*"
class=".overrides.FolderContentsView"
name="folder_contents"
template="folder_contents.pt"
permission="cmf.ReviewPortalContent"
/>

</configure>

在浏览器/overrides.py
from plone.app.content.browser.foldercontents import FolderContentsView

class ProtectedFolderContentsView(FolderContentsView):
""" Customized FolderContentsView """

但是,当我启动实例时,我得到:
zope.configuration.config.ConfigurationConflictError: Conflicting configuration actions
For: ('view', None, u'folder_contents', <InterfaceClass zope.publisher.interfaces.browser.IBrowserRequest>, <InterfaceClass zope.publisher.interfaces.browser.IDefaultBrowserLayer>)
File "src/custom.policy/custom/policy/browser/configure.zcml", line 30.2-36.6
<browser:page
for="*"
class=".overrides.FolderContentsView"
name="folder_contents"
template="folder_contents.pt"
permission="cmf.ReviewPortalContent"
/>
File "eggs/plone.app.content-2.0.7-py2.6.egg/plone/app/content/browser/configure.zcml", line 15.4-20.46
<browser:page
for="*"
class=".foldercontents.FolderContentsView"
name="folder_contents"
template="folder_contents.pt"
permission="cmf.ListFolderContents" />

如何在遇到冲突的情况下完成此覆盖?

最佳答案

如果这真的只是自定义站点配置,而不是您将在其上构建的内容,那么这正是 overrides.zcml 的用途。创建一个 custom/policy/overrides.zcml:

<configure xmlns="http://namespaces.zope.org/zope">
<include package=".browser" file="overrides.zcml" />
</configure>

然后将您的 browser/configure.zcml 重命名为 browser/overrides.zcml。

关于plone - 在 Plone 4 中重新定义浏览器 View 的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6943354/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com