跳转到主要内容

Django混合访问控制系统

项目描述

HACS(混合访问控制系统)

https://badge.fury.io/py/django-hacs.svg https://travis-ci.org/nazrulworld/django-hybrid-access-control-system.svg?branch=master https://coveralls.io/repos/github/nazrulworld/django-hybrid-access-control-system/badge.svg?branch=master

由Django提供全功能高级访问控制系统HACS提供企业级标准的授权系统,同时覆盖IAM(身份和访问管理)。

特性

  1. Django多站点:支持使用单个配置文件(settings)运行多个站点,这是一个动态过程,因此您可以添加无限数量的站点。

  2. 防火墙/访问控制:为您的应用程序提供完整的防火墙功能,与IP表几乎相同。
    1. 自定义URL模式:适用于站点、用户和组的规则。

    2. HTTP方法过滤器:适用于站点、用户和组的规则。

    3. 维护模式:仅适用于站点的规则。

    4. 正则表达式URL黑名单:适用于站点、用户和组的规则。

    5. 正则表达式URL白名单:适用于站点、用户和组的规则。

  3. 高级授权:(即将推出)致力于成为Django Guardian和Django Authority的组合,但肯定可以从这些中汲取灵感。

  4. 审计跟踪:(即将推出)这是IAM(身份和访问管理)的一部分

安装

安装django-hacs,只需使用pipeasy_install

~$ pip install django-hacs
or
~$ easy_install django-hacs

安装django-hacs的最新(开发)版本

~$ git clone https://github.com/nazrulworld/django-hybrid-access-control-system.git django-hacs
~$ cd django-hacs
~$ python setup.py install

配置

在INSTALLED_APPS中添加django-hacs

INSTALLED_APPS = (
    .................,
    'django.contrib.contentypes',
    'django.contrib.sites',
    'hacs'
)

添加来自django-hacs的中间件类,并确保已添加django.contrib.sites.middleware.CurrentSiteMiddleware

MIDDLEWARE_CLASSES = [
    ............................
    'django.contrib.sites.middleware.CurrentSiteMiddleware',
    'hacs.middleware.DynamicRouteMiddleware',
    'hacs.middleware.FirewallMiddleware',
]

可选:定义可写位置,生成urlconf模块将存储的位置,默认位置是hacs/generated的路径

HACS_GENERATED_URLCONF_DIR = "your desired directory location"

初始化django-hacs环境,这是起点

~$ python manage.py init_hacs
>>> provide your information

依赖关系

  • Django 1.9.x或更高版本

文档

完整用户文档可在“docs”文件夹中找到,也可以在http://django-hacs.readthedocs.org/在线获取

路由规则管理

我们可以有两种方法来做这件事。 Django Admin 1. 确保已安装admin应用,并将hacs.urls添加到urlconf中。例如 url(r'^hacs/', include(('hacs.urls', 'hacs'), namespace='hacs')) 2. 访问http://{host}/admin/hacs/。从这里您可以管理(添加、编辑、删除)。更多详情请参阅文档。

Django管理工具 1. 从https://github.com/nazrulworld/django-hybrid-access-control-system/blob/master/sample/routes-minimal.json下载示例路由文件 2. 填写所需信息。您可以直接复制粘贴,并填写您所需的内容,只需确保是有效的json,并且所有条目都在一个列表下。 3. 保存json文件,并记住位置 4. 在终端中,cdmanage.py

~$ python manage.py import_route -S <path to json file>

部署django-hacs

  1. 您可以选择遵循上述说明并创建新的路由方案。

  2. 如果您已经在本地有准备就绪的路由方案。
    1. 从本地导出路由方案~$ python manage.py export_route -d <输出文件名及完整路径。例如/tmp/my-routes.json>

    2. 现在从生产服务器终端导入路由方案~$ python manage.py import_route -S <json文件路径>

贡献

支持

如果您遇到问题,请告知我们。我们有一个位于:Django HACS<connect2nazrul@gmail.com>的邮件列表

贡献者

变更日志

1.0a2

  • 初始发布。

由以下机构支持