【问题标题】:How is zope 3 view security handled in PlonePlone 中如何处理 zope 3 视图安全性
【发布时间】:2013-05-08 08:49:02
【问题描述】:

当一个人在 ZCML 中注册一个视图时:

<browser:page
   for="*"
   name="reporter"
   class=".reporter.report_form_frame"
   permission="cmf.SetOwnPassword"
   />
  • Zope 机器在遍历堆栈的哪个点检查此权限

  • 哪个组件跟踪视图及其权限

【问题讨论】:

    标签: plone zope


    【解决方案1】:

    browser:page 处理程序设置视图类本身的权限。没有跟踪的中心组件。

    在 Zope 2 中,它被委托给 AccessControl.security.protectClass() 函数,这相当于将 ClassSecurityInfo 对象添加到您的视图类:

    from AccessControl.SecurityInfo import ClassSecurityInfo
    
    class report_form_name(BrowserView):
        security = ClassSecurityInfo()
        security.declareObjectProtected('cmf.SetOwnPassword')
    

    或者,如果将视图设为公开 (zope.Public) 或私有 (zope.Private),则改用 security.declareObjectPublic()security.declareObjectPrivate() 调用。

    类安全信息被转换为发布者在检查权限时检查的类的__roles____ac_permissions__ 属性。请参阅 Zope Secrets 书中的Security chapter,了解有关这些工作原理的详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多