与 Pyramid 授权、__acl__ 和 RootFactory 混淆

Posted

技术标签:

【中文标题】与 Pyramid 授权、__acl__ 和 RootFactory 混淆【英文标题】:Confusion with Pyramid authorization, __acl__, and RootFactory 【发布时间】:2013-07-31 02:09:31 【问题描述】:

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

注册用户可以登录他们的帐户。每个用户都有自己的“个人资料” 登录后,他们可以加入某些“网络”或群组(或任何您喜欢的名称)。 这些用户只有加入这些网络才能查看这些网络的内容。 网络有管理员,每个管理员都有不同的、可自定义的权限(x、y 和 z)。这些管理员可以编辑网络的内容。

如何使用 Pyramid 的 __acl__RootFactory 和授权/身份验证功能实现这一点(基本而言)?相对于用户帐户的基本登录/注销功能,每个网络如何拥有自己的权限?

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

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

感谢您的帮助。

【问题讨论】:

你有没有看过像枪战这样的示例项目,或者像 bookie 这样的生产项目来汲取灵感? 我看过 Shootout,并将其用作学习工具。到目前为止,它肯定很有帮助。但是,Bookie,我还没有看过,但会在我的下一个空闲时间段看。感谢您的建议。 【参考方案1】:

我最近向基于 URL Dispatch 的金字塔应用程序添加了登录/身份验证/授权。我使用了官方教程(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)。它将有关资源/安全性的文档中的概念应用于多个用例。我真的很喜欢它,也许你也受到启发。如果您回来就这些用例提出更具体的问题,答案可能比您当前问题的答案更简单、更简洁。

【讨论】:

以上是关于与 Pyramid 授权、__acl__ 和 RootFactory 混淆的主要内容,如果未能解决你的问题,请参考以下文章

2018南京区域赛G题 Pyramid——找规律&&递推

phalcon: 目录分组后的acl权限控制

我的 IIS 提示 HTTP 错误 404 - 文件或目录未找到。

第7章 权限管理_ACL权限

+++++++子域授权与编译安装

NAT与ACL执行顺序解析