启用RBAC授权的Django应用程序。

django-rbac-permissions的Python项目详细描述


Django RBAC权限

一个Django包,在启用层次结构和约束的情况下启用RBAC。在

快速入门

  1. django_rbac_permissions添加到已安装的应用程序设置中,如下所示:

    INSTALLED_APPS=[...'django_rbac_permissions','django_json_widget'# Optional]

    如果你想在一个漂亮的小部件中看到你的JSONFields,包括 django_json_widget也在您安装的应用程序中。在

  2. 运行python manage.py migrate创建模型。在

  3. 如果您想定义您的模块(应用程序),其中 应该检查角色授权的资源,必须定义 模块配置模型。例如:

    ^{pr2}$

    每个布尔字段表示一个模块(应用程序),并决定是否 给定的角色名被授权访问它。在

    您还必须将MODULE_CONFIGURATION_PATH设置为模型所在的路径。在

  4. 如果您还想控制管理页面中的授权,则必须 将中间件类CheckAdminRoleAuthorizationMiddleware添加到 Django设置文件中的中间件配置:

    MIDDLEWARE=[...'rbac_permissions.middleware.CheckAdminRoleAuthorizationMiddleware']
  5. 您可以在设置.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是当所需角色与用户的某个角色匹配,但事务的当前规则集拒绝访问此用户的一个或多个角色时,视图返回的消息。完全可以选择。在
  1. 启动开发服务器并访问http://127.0.0.1:8000/admin/ 创建角色或事务。在

注释

如果在内部将视图路由到应用程序中的其他视图,则 成为与Django的身份验证后端相关的bug,这将导致从请求上下文中删除当前用户。 因此,如果您经常在代码中使用此模式,请确保将'rbac_user={current_user_id}'作为查询参数传递,以便从数据库而不是从请求对象获取当前经过身份验证的用户。在

这是一个暂时的解决办法,将试图找到一个更合适的解决办法。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像