Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zope3视图安全性在Plone中是如何处理的_Plone_Zope - Fatal编程技术网

Zope3视图安全性在Plone中是如何处理的

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

在ZCML中注册视图时,如:

<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一书的第页