django按角色(组)查看访问安全性。

django-roles-access的Python项目详细描述


Django roles access

django角色访问

Build Statuscodecov

用于保护对具有角色的视图的访问的应用程序 (django contrib group)。

django_roles_access是一个django应用程序,用于保护对视图的访问。它是 建立在被解释为角色的django contrib组之上。目标 应用程序是:

  • 提供对视图的安全访问。

  • 能够管理对视图的访问,而无需重新启动 服务器(运行时)。

  • 最小化对新代码的需求,或者完全消除它(当使用 django_roles_access中间件)。也使开发人员从任务中解放出来 对任何视图访问进行编码。

  • django_roles_access还通过注册提供安全报告 checkviewaccess操作。

使用:

  • django 1.10+(python 2.7,python 3.5+)

  • django 2(python 3.5+)

  • Documentation

要求

django角色访问使用django contrib groupsdjango contrib user。阿尔索 django号 创建和管理views accessdjango_roles_access.models.ViewAccess)。 因此django角色的访问依赖于django管理站点 这和它有相同的要求。这可以在 official documentation:

快速启动

安装和配置

  1. 从pypi安装django_roles_access

    pip install django roles访问

  2. 'django_roles_access'添加到已安装的应用程序设置:

    已安装的应用程序=[ … “django_roles_access”, ]

  3. 运行迁移以创建django_角色访问模型:

    python manage.py迁移

Note:

If nothing else is done, then Django site security keeps without modification.

访问配置

快速查看访问配置分两步进行。

步骤1

django admin接口中创建 django_roles_access.models.ViewAccess 对象并对其进行配置:

  1. view属性:要保护的视图的名称。使用的格式: <app_name:view_name>Namespaces and View name)。

  2. type属性:为视图选择access类型

    • public:任何访问者都可以访问该视图。

    • authorized:只有授权(记录的)django contrib用户可以访问 景色。

    • 按角色:仅django contrib user属于任何添加的django contrib user将访问该视图。

  3. roles属性:当by roles被选为access type时,此 属性保存其成员将访问视图的任何django contrib group

步骤2

在要保护的视图中使用:

例如:

如果视图是一个函数:

from django_roles_access.decorators import access_by_role

@access_by_role()
myview(request):
   ...

在基于类的视图中使用MIXIN:

from django_roles_access.mixin import RolesMixin

class MyView(RolesMixin, View):

    ...

Note:

When user has no access to a view, by default django_roles_access response with django.http.HttpResponseForbidden.

Warning:

Pre existent security behavior can be modified if a django_roles_access configuration for the same view results in a more restricted view access.

测试django角色访问

您可以在以下位置检查django_roles_访问测试执行 Travis CI integrationBuild Status

您还可以在以下位置检查dajngo_roles_access测试覆盖率 Coveragecodecov

或:

  1. 创建虚拟环境。

  2. 进入并激活虚拟环境。

  3. 克隆django\u角色访问

    git克隆https://github.com/django-roles-access/master.git

  4. 安装tox:

    pip安装tox

  5. 运行测试:

    毒性

相关站点

    <升我>

    {a3}

  • {a16}

  • {a17}

  • {A10}

  • {a19}

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

推荐PyPI第三方库


热门话题
由于测试失败,java testcontainers maven构建失败   java实现jacobi算法实现laplace方程   java中的多线程:如何在不等待所有线程使用ExecutorService完成任务的情况下终止所有线程的执行?   java Hello World不在Android Studio 3中工作   ubuntu Tomcat7的Java版本不正确   java Javafx内存泄漏   对于手动实现的Spring数据存储库方法,我应该使用Java8默认方法吗?   googleappengine中的java添加过滤查询   html当使用JSOUP库在Java中读取标签时,如何保留标签(如<br>、<ul>、<li>、<p>等)的含义?   编码为什么jasper生成的报告在Java中不显示西里尔语(保加利亚语)?   java有没有办法隐藏当前位置和jdk动作?   java找出编译原型文件的版本   有没有办法在运行时更改java方法的访问修饰符?   语法字符串。。。Java中的参数   java数组元素在添加其他元素时会相互覆盖   eclipse中的java GWT项目   java如何为spring rest模板请求将动态json属性名映射到jackson   java无法在Windows 10上找到特定的JDK   在xml字符串和java字符串之间提取正则表达式子字符串