Zope3视图安全性在Plone中是如何处理的
在ZCML中注册视图时,如:Zope3视图安全性在Plone中是如何处理的,plone,zope,Plone,Zope,在ZCML中注册视图时,如: <browser:page for="*" name="reporter" class=".reporter.report_form_frame" permission="cmf.SetOwnPassword" /> 在遍历堆栈的哪个点Zope机器检查此权限 哪个组件跟踪视图及其权限 浏览器:页面处理程序设置视图类本身的权限。没有跟踪的中心组件 在Zope 2中,它被委托给AccessControl.security
<browser:page
for="*"
name="reporter"
class=".reporter.report_form_frame"
permission="cmf.SetOwnPassword"
/>
- 在遍历堆栈的哪个点Zope机器检查此权限
- 哪个组件跟踪视图及其权限
- 浏览器:页面处理程序设置视图类本身的权限。没有跟踪的中心组件
在Zope 2中,它被委托给
AccessControl.security.protectClass()
函数,这相当于向视图类添加ClassSecurityInfo
对象:
from AccessControl.SecurityInfo import ClassSecurityInfo
class report_form_name(BrowserView):
security = ClassSecurityInfo()
security.declareObjectProtected('cmf.SetOwnPassword')
或者,如果将视图设置为public(zope.public
)或private(zope.private
),则使用security.declareObjectPublic()
或security.declareObjectPrivate()
调用
类安全信息被转换为发布者在检查权限时检查的类上的\uuuuu角色\uuuuuuu
和\uuuuu ac\u权限\uuuuuuuu
属性。有关这些如何工作的详细信息,请参阅Zope Secrets一书的第页