Simple RBAC权限控制工具库
Simple RBAC 是一个简单的权限控制工具库,提供了在 Python 中使用基于角色访问控制(Role Based Access Control)的可能。该工具库有如下特性:
- 支持角色(Role)和资源(Resource)的多重继承,以便于在分层复杂的使用场景中使用;
- 支持规则断言(Assertion),可以实现特殊的访问控制规则(例如早上九点到十点之间拒绝上传、小组成员才允许发言等);
- 最简单的情况下可以只启用一个规则注册表(rbac.acl.Registry),调用 `is_allowed`和 `is_any_allowed`验证规则;
- 复杂一点的场景,可以启用访问控制上下文(rbac.context.IdentityContext),设置回调函数自动加载用户拥有的角色身份,并用 Python 丰富的 AOP 支持验证权限(装饰器、with 语法等);
- 对于使用了 ORM 的情况,还可以使用代理注册表(rbac.proxy.RegistryProxy),在注册规则和验证权限的时候直接使用 ORM 映射过的类或实例作为参数。
详细介绍请见项目主页,Github 托管的源码中也包含了使用范例,OSChina 代码分享中也发布了一个范例。该工具库也已经注册到 PyPI,可以使用
easy_install simple-rbac # or pip install simple-rbac -U
安装。
如果发现有 Bug 或对本项目有任何建议,都欢迎到 Github 提交 Issues。
评论