Plone的敏捷能够被编程为使用数据库吗?

时间:2013-08-16 20:23:57

标签: python security plone dexterity

http://developer.plone.org/reference_manuals/external/plone.app.dexterity/advanced/permissions.html

  

在文档中,我看到了这一点,

     

注意需要在configure.zcml中的行之前定义所有权限。否则,您可能会收到错误   尝试使用grok.require()指令的权限。该   permissions.zcml文件如下所示:

<configure
    xmlns="http://namespaces.zope.org/zope"
    i18n_domain="example.conference">

    <permission
        id="example.conference.AddSession"
        title="example.conference: Add session"
        />

    <permission
        id="example.conference.ModifyTrack"
        title="example.conference: Modify track"
        />

</configure>
     

默认情况下,只为Manager角色授予新权限。至   设置不同的默认值,我们可以使用rolemap.xml GenericSetup   导入步骤,将权限映射到站点根目录的角色。

     

profiles/default/rolemap.xml中,我们有以下内容:

<?xml version="1.0"?>
<rolemap>
  <permissions>
    <permission name="example.conference: Add session" acquire="True">
      <role name="Owner"/>
      <role name="Manager"/>
      <role name="Member"/>
      <role name="Contributor"/>
    </permission>
    <permission name="example.conference: Modify track" acquire="True">
      <role name="Manager"/>
      <role name="Reviewer"/>
    </permission>
  </permissions>
</rolemap>
     

注意此文件使用Zope 2权限标题而不是短标题   Zope 3的许可ID。“

可以将Plone的敏捷程序编程为使用数据库吗?如果我有数千名用户怎么办?当我在Active Directory中拥有它或MySQL数据库时,这是很多要跟上的xml文件。我想保持按钮和其他网页项目的安全性。灵巧似乎就是这样。

感谢。

编辑:感谢您清除用户和角色之间的混淆,因为用户被保存在像LDAP服务器这样的存储库中。

我是否正确,在我的角色和用户设置之后,我所要做的就是如此包装我的html(在定义Python代码之后):

“例如,如果用户具有cmf.RequestReview权限,则在Session类型的视图上显示一条消息。在session.py中,我们使用以下(相同页面)更新View类,

from zope.security import checkPermission

class View(dexterity.DisplayForm):
    grok.context(ISession)
    grok.require('zope2.View')

    def canRequestReview(self):
        return checkPermission('cmf.RequestReview', self.context)

在session_templates / view.pt模板中,我们添加:

<div class="discreet"
     tal:condition="view/canRequestReview"
     i18n:translate="suggest_review">
    Please submit this for review.
</div>

0 个答案:

没有答案