混淆金字塔授权,__ acl__和RootFactory

Joh*_*ing 6 python pyramid

作为一种学习体验,我想建立一个以这种(简化)方式构建的网站:

  • 注册用户可以登录其帐户.每个用户都有自己的"个人资料"
  • 登录后,他们可以加入某些"网络"或组(或任何您想要称之为的网络).
  • 这些用户只有在加入这些网络时才能查看这些网络的内容.
  • 网络拥有管理员,每个管理员都具有不同的可自定义权限(x,y和z).这些管理员可以编辑网络的内容.

我该如何去与金字塔的实现这一点(在基本术语)__acl__,RootFactory以及授权/认证功能?每个网络相对于用户帐户的基本登录/注销功能如何拥有自己的权限?

我已多次阅读文档,并开始了解Pyramid安全性的工作原理; 但是,我觉得我需要一些更具体的澄清.例如,为了创建最简单的登录功能,我是否需要__acl__在我的RootFactory中指定一个,或者这只是定义各种组,无论谁可以登录?基本的东西,但也有足够的"不寻常"的情况,我可以看到它们如何融合在一起......

注意:我不是在找人写代码.我只是在一些我不理解的情况下寻找一些基本的规范.

谢谢您的帮助.

Sas*_*ied 2

我最近向基于 URL 调度的金字塔应用程序添加了登录/身份验证/授权。我使用了官方教程之一的一章(http://docs.pylonsproject.org/projects/pyramid/en/latest/tutorials/wiki2/authorization.html)。与叙述性文档中庞大的安全性章节相比,我更喜欢这一简洁的章节。如果您想使用 Traversal,请从在 ZODB 中创建 Wiki 的官方教程中选择相同的章节。

至少本章将回答您有关基本登录/注销、创建用户/组、创建基本 ACL 并将其应用于 RootFactory、使用权限保护视图的问题。

为了解决您的网站结构问题,我建议您使用 Michael Merickels 教程 ( http://michael.merickel.org/projects/pyramid_auth_demo/index.html )。它将有关资源/安全性的文档中的概念应用于多个用例。我真的很喜欢它,也许你也会受到启发。如果您回来询问有关这些用例的更具体的问题,答案可能比您当前问题的答案更简单、更简洁。