首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于repoze.what的替代权限模型

基于repoze.what的替代权限模型
EN

Stack Overflow用户
提问于 2010-12-15 21:38:55
回答 2查看 226关注 0票数 0

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

访问站点的anonymous.

  • User

  • 用户要么是登录用户,要么是属于0或多个组的帐户。
  • 组具有与其关联的0或多个权限。

因此,例如,您的权限可能是“can - post”和“can - post -注释”,而您的组可能是“作者”、“访问者”,其中'author‘可以同时发布文章和评论,而访问者只能发布评论。

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

anonymous.

  • Users访问者是登录用户,或者是0或多个组的成员。对于用户所属的每个组,
  • 将具有不同的权限。例如,用户可能是“作者”或“组A”,但在B组(

)上是“评论”。

小组的数量将随着时间的推移而变化,这些小组的成员身份也将发生变化。我看不到将这个权限模型集成到repoze.what中的任何简单方法。我漏掉了什么明显的东西吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-15 21:55:38

那么,您可以很容易地拥有一个"Group_A_commenter“组和"Group_B_editor”组。它们不需要手动生成。)你的模型实际上只是分组的问题。

但是,您还应该能够生成实现规则的谓词检查器。

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

票数 2
EN

Stack Overflow用户

发布于 2011-01-09 08:08:48

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

答案是,使用repoze.what文档中建议的身份验证模式的唯一原因是,如果使用,则可以免费使用它们的谓词。幸运的是,编写和使用自己的谓词是小菜一碟。在我看来,唯一困难的需求是对用户对象(尽管很明显,您可以任意称呼它)。在我的应用程序中,我有一堆自定义谓词,它们检查某些事情,比如:

  • 是这个组的用户吗?(由参数指定的组)
  • 是用户登录的吗?
  • 用户是否拥有这个特定的站点角色?

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4455197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档