替代权限模型休憩.wh

2024-05-16 02:53:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个web应用程序,我想使用repoze.what&;repoze.who来处理我的授权和身份验证。问题是repoze.what似乎是硬编码以接受特定的权限模型,即:

  • 该站点的访问者要么是已登录的用户,要么是匿名的。在
  • 用户帐户属于0个或更多组。在
  • 组具有0个或多个与其关联的权限。在

例如,您的权限可能是“可以发表文章”和“可以发表评论”,而您的组可能是“作者”、“访问者”,其中“作者”既可以发表文章,也可以发表评论,而访问者只能发表评论。在

这种模式可能适用于大多数网站。然而,我的网站允许团队在不同的层次上相互协作。所以我需要的安全模型是:

  • 访问者要么是登录用户,要么是匿名用户。在
  • 用户是0个或更多组的成员。在
  • 对于用户所属的每个组,该成员资格将具有不同的权限。例如,用户可能是“作者”或组A,但是组B的“评论者”

组的数量会随着时间的推移而变化,这些组的成员资格也会发生变化。我找不到任何简单的方法来将这个权限模型集成到repoze.what。我错过了什么明显的东西吗?在


Tags: 用户模型web应用程序权限网站评论成员
2条回答

我有了一个答案,经过一段时间的摆弄。在

答案是使用休息。什么文档说明,如果你这样做,你可以免费使用它们的谓词。幸运的是,编写和使用自己的谓词是小菜一碟。在我看来,唯一的硬性要求是用户对象(尽管很明显,您可以随意调用它)。在我的应用程序中,我有一堆自定义谓词,可以检查某些内容,例如:

  • 用户是此组的成员吗?(由参数指定的组)
  • 用户是否已登录?在
  • 用户是否具有此特定站点角色?在

然后我可以在任何地方使用这些谓词。在

好吧,你可以很容易地有一个“群发评论者”组和“群发编辑”组。它们不必手动生成。:)你的模型实际上只是分组的问题。在

但您还应该能够制作实现规则的谓词检查程序。在

http://what.repoze.org/docs/1.0/Manual/Predicates/index.html#term-predicate

相关问题 更多 >