启用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 Spring启动启用HTTPS   actionscript 3 java中的这个[“var”+“name”]   java只匹配给定集合中一个字符的一个匹配项   java Hibernate:防止角色表中出现多个相同的条目   javajersey+Spring注入servlet请求   java HtmlEditor javafx失去焦点   java Apache Wicket AjaxRequestTarget ListView组件未刷新或更新   mysql java。无法将lang.String转换为java。sql。时间戳   java将巨大的整数文件(在一行中)拆分为具有内存限制的已排序块   安卓如何完全关闭proguard?   安装Eclipse和Android SDK后的java“无AVD可用”消息   java动态显示图像视图   java在Spring中还有哪些WebsocketClient实现?   java Glassfish需要很长时间才能重新启动   使用Java简单串行连接器将pc与arduino连接   java如何在camel文件组件配置中结合readLockCheckInterval和maxMessagesPerPoll?   单击Android时的java预览图像   java如何将字节数组转换为ByteArrayOutputStream