启用RBAC授权的Django应用程序。
django-rbac-permissions的Python项目详细描述
Django RBAC权限
一个Django包,在启用层次结构和约束的情况下启用RBAC。在
快速入门
- 在
将
django_rbac_permissions
添加到已安装的应用程序设置中,如下所示:INSTALLED_APPS=[...'django_rbac_permissions','django_json_widget'# Optional]
如果你想在一个漂亮的小部件中看到你的JSONFields,包括
在django_json_widget
也在您安装的应用程序中。在 - 在
运行
在python manage.py migrate
创建模型。在 - 在
如果您想定义您的模块(应用程序),其中 应该检查角色授权的资源,必须定义 模块配置模型。例如:
^{pr2}$每个布尔字段表示一个模块(应用程序),并决定是否 给定的角色名被授权访问它。在
您还必须将
在MODULE_CONFIGURATION_PATH
设置为模型所在的路径。在 - 在
如果您还想控制管理页面中的授权,则必须 将中间件类
CheckAdminRoleAuthorizationMiddleware
添加到 Django设置文件中的中间件配置:MIDDLEWARE=[...'rbac_permissions.middleware.CheckAdminRoleAuthorizationMiddleware']
在 - 在
您可以在设置.py文件。在
在
GRANT_NONEXISTENT_PATH_ACCESS
决定是否要授予对不存在的资源的访问权(在本例中,这意味着url不存在或者url尚未添加到任何事务中)。默认值为False
。在PERMISSION_DENIED_URL
设置视图的url名称,该名称返回HTTP禁止的u403状态代码。这就是视图,如果用户被拒绝访问,它将被装饰器user_groups_required
重定向。默认值是permission-denied
。在HTTP_FORBIDDEN_MESSAGE
是拒绝用户访问时的默认消息。完全可以选择。在ROLE_RULE_DENIED_ACCESS_MESSAGE
是当所需角色与用户的某个角色匹配,但事务的当前规则集拒绝访问此用户的一个或多个角色时,视图返回的消息。完全可以选择。在
- 启动开发服务器并访问http://127.0.0.1:8000/admin/ 创建角色或事务。在
注释
如果在内部将视图路由到应用程序中的其他视图,则 成为与Django的身份验证后端相关的bug,这将导致从请求上下文中删除当前用户。 因此,如果您经常在代码中使用此模式,请确保将'rbac_user={current_user_id}'作为查询参数传递,以便从数据库而不是从请求对象获取当前经过身份验证的用户。在
这是一个暂时的解决办法,将试图找到一个更合适的解决办法。在
- 项目
标签: