GAE应用程序的基于角色的授权机制

时间:2012-03-13 19:04:19

标签: python google-app-engine authorization acl

我正在为在Google App Engine上运行的Python(2.7)编写的应用程序寻找基于角色的框架/模块/包。

基于角色我的意思是一种机制,允许我检查(在大多数时间的请求处理期间)某个用户是否能够执行特定操作。

一些用例:

  • 用户A应该能够查看和修改自己的个人资料,而用户B应该只能看到用户A个人资料。
  • 具有“admin”角色的用户应该能够看到所有注册用户,而用户A和用户B应该只能看到具有公共配置文件的用户(例如,user.public属性设置为True的用户)

我在想像

user_a.is_able_to('read', user_b) # -> True of False

user_a.authorize('update', user_b) # raises an exception if 'not allowed to'

到目前为止,我只是从tipfy看过acl.py。看起来很简单,非常接近我正在寻找的东西。我想知道是否有类似于acl.py的东西,最好用NDB实现。

2 个答案:

答案 0 :(得分:2)

Web2py包含基于角色的访问控制,我认为它适用于GAE。这在此处记录:

http://web2py.com/books/default/chapter/29/9

您可以分叉auth模块并根据您的需要进行修改。我知道人们已经使用了web2py的其他部分,例如DAL。

答案 1 :(得分:1)

Turbogears和Web2py框架具有基于角色的访问控制,您可以将其中一个集成到GAE Python版本中。