python - 混淆 Pyramid 授权、__acl__ 和 RootFactory

标签 python pyramid

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

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

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

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

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

感谢您的帮助。

最佳答案

我最近向基于 URL Dispatch 的 Pyramid 应用程序添加了登录/身份验证/授权。我使用了其中一个官方教程 ( http://docs.pylonsproject.org/projects/pyramid/en/latest/tutorials/wiki2/authorization.html ) 中的一章。我更喜欢这个简洁的章节,而不是叙述文档的大型安全章节。如果你想使用 Traversal,请选择在 ZODB 中创建 Wiki 的官方教程中的相同章节。

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

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

关于python - 混淆 Pyramid 授权、__acl__ 和 RootFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17960455/

相关文章:

Python删除数组中的所有负值

python - SQLAlchemy - 连接条件失败,出现 AttributeError : Neither 'BinaryExpression' object nor 'Comparator' object has an attribute 'selectable'

python - 如何在带有 i18n 的 mako 渲染模板中使用 _?

python - 进程结束,退出代码为 -1073741515 (0xC0000135)

python - 如何从可调用 View 渲染 Jinja2 宏?

python - 使用 CLI 脚本共享 Pyramid 配置

python - 使用 uWSGI 和 Cherokee 部署 Pyramid 应用程序

python - 如何使用 Boto3 和用户名访问别人的 AWS S3 'bucket'?

python - 如何覆盖 `is` 运算符

python - 如何在 Matplotlib 中绘制模糊点