Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

HACS(Hybrid Access Control System)

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

The full featured advanced Access Control System powered by Django. HACS provides enterprise standard authorization system, it also covers IAM(Identity and Access Management).

Features

  1. Django MultiSite: Support to run multiple sites with single config file(settings), this is dynamic process, so you can add unlimited sites.

  2. Firewall/Access Control: Complete firewall features for your application, almost similar fashion of IP Table
    1. Custom URL schema: applicable applicable on site, user & group’s rules.

    2. HTTP Methods filter: applicable on site, user & group’s rules.

    3. Maintenance Mode: applicable on only site’s rules.

    4. Regex patterned URL blacklist: applicable on site, user & group’s rules.

    5. Regex patterned URL whitelist: applicable on site, user & group’s rules.

  3. Advanced Authorization: (coming) Committed to be more than combination of Django Guardian and Django Authority but definitely base idea could be from those.

  4. Audit Trial: (coming) This is the part of IAM (Identity and Access Management)

Installation

Install django-hacs, simply use pip or easy_install

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

Install most recent (dev) version of django-hacs

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

Configuration

Add django-hacs at INSTALLED_APPS

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

Add middleware classes from django-hacs and also make sure django.contrib.sites.middleware.CurrentSiteMiddleware is added:

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

Optionally define the writable location, where generated urlconf modules will be stored, default location is path to hacs/generated

HACS_GENERATED_URLCONF_DIR = "your desired directory location"

Initialize django-hacs environment and this the starting point:

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

Dependencies

  • Django 1.9.x or higher

Documentation

Full documentation for end users can be found in the “docs” folder, and is also available online at http://django-hacs.readthedocs.org/

Routing Rules Management

We have two ways to do that. Django Admin 1. Make sure admin app is installed and hacs.urls is added into urlconf. i.e url(r'^hacs/', include(('hacs.urls', 'hacs'), namespace='hacs')) 2. Go to http://{host}/admin/hacs/. From there you can manage (add, edit, delete). More details could be found at documentation.

Django Management Tool 1. Download sample routing file from https://github.com/nazrulworld/django-hybrid-access-control-system/blob/master/sample/routes-minimal.json 2. Fill with required information. You can just copy/paste and fill as much as you need, just make sure about valid json and all entries are under one list. 3. Save the json file and keep in mind the location 4. Go to terminal and cd to manage.py:

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

Deploy django-hacs

  1. You can either follow above instruction and create new routing schema.

  2. If you have already routing schema at local and that are ready for production.
    1. Export from local ~$ python manage.py export_route -d <output file name with full path. i.e /tmp/my-routes.json>

    2. Now import routing schema from production server’s terminal ~$ python manage.py import_route -S <path to json file>

Contribute

Support

If you are having issues, please let us know. We have a mailing list located at: Django HACS<connect2nazrul@gmail.com>

Contributors

Changelog

1.0a2

  • Initial release.

Release files for django-hacs 1.0b1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-hacs 1.0b1
File Size Uploaded
django-hacs-1.0b1.tar.gz 456.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-hacs 1.0b1
File Interpreter ABI Platform
django_hacs-1.0b1-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 964.7 kB

Release files / django-hacs-1.0b1.tar.gz

Download URL django-hacs-1.0b1.tar.gz
Size 456.0 kB
Tags Source
SHA-256 checksum
How to use checksums
46d0d6daf03767bd57aa3d60f57bbf015a127f638e7cd3a9a268e49acb442d3f
BLAKE2b-256 checksum
How to use checksums
15099babb8923d108c07a3918a946e19fccefc569f2a964d271c0b0f7ed392c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / django_hacs-1.0b1-py2.py3-none-any.whl

Download URL django_hacs-1.0b1-py2.py3-none-any.whl
Size 508.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
87190524d27d2d76f60b7e7b500a9cf42d1900c37459466af6e53663dad70d5e
BLAKE2b-256 checksum
How to use checksums
1aff3740f39ac952ef7d5e7daba2059292293ae8b4cd8344d63da48b9a60606f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0b1 This release

2 release files

1.0a1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page