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

ale*_*lex 9 python google-app-engine acl authorization

我正在寻找一个基于角色的框架/模块/包,用于在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
Run Code Online (Sandbox Code Playgroud)

要么

user_a.authorize('update', user_b) # raises an exception if 'not allowed to'
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*son 2

Web2py 包含基于角色的访问控制,我相信它适用于 GAE。此处记录了这一点:

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

您也许可以分叉 auth 模块并根据您的目的对其进行修改。我知道人们已经用 web2py 的其他部分(例如 DAL)做到了这一点。