Skip to main content

Django's ORM adapter for PyCasbin

Project description

Django ORM Adapter for PyCasbin

Build Status Coverage Status Version PyPI - Wheel Pyversions Download License

Django ORM Adapter is the Django's ORM adapter for PyCasbin. With this library, Casbin can load policy from Django ORM supported database or save policy to it.

Based on Officially Supported Databases, The current supported databases are:

  • PostgreSQL
  • MariaDB
  • MySQL
  • Oracle
  • SQLite
  • IBM DB2
  • Microsoft SQL Server
  • Firebird
  • ODBC

Installation

pip install casbin-django-orm-adapter

Add casbin_adapter.apps.CasbinAdapterConfig to your INSTALLED_APPS

# settings.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

INSTALLED_APPS = [
    ...
    'casbin_adapter.apps.CasbinAdapterConfig',
    ...
]

CASBIN_MODEL = os.path.join(BASE_DIR, 'casbin.conf')

To run schema migration, execute python manage.py migrate casbin_adapter

Simple Example

# views.py
from casbin_adapter.enforcer import enforcer

def hello(request):
    sub = "alice"  # the user that wants to access a resource.
    obj = "data1"  # the resource that is going to be accessed.
    act = "read"  # the operation that the user performs on the resource.

    if e.enforce(sub, obj, act):
        # permit alice to read data1casbin_django_orm_adapter
        pass
    else:
        # deny the request, show an error
        pass

Configuration

CASBIN_MODEL

A string containing the file location of your casbin model.

CASBIN_LOG_ENABLED

If True, enables logging. False by default.

CASBIN_ADAPTER

A string containing the adapter import path. Defaults to the django adapter shipped with this package: casbin_adapter.adapter.Adapter

CASBIN_ADAPTER_ARGS

A tuple of arguments to be passed into the constructor of the adapter specified in CASBIN_ADAPTER. Refer to adapters to see available arguments.

E.g. if you wish to use the file adapter set the adapter to casbin.persist.adapters.FileAdapter and use CASBIN_ADAPTER_ARGS = ('path/to/policy_file.csv',)

CASBIN_WATCHER

Watcher instance to be set as the watcher on the enforcer instance.

CASBIN_ROLE_MANAGER

Role manager instance to be set as the role manager on the enforcer instance.

Getting Help

License

This project is licensed under the Apache 2.0 license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

casbin-django-orm-adapter-test-1.0.0.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file casbin-django-orm-adapter-test-1.0.0.tar.gz.

File metadata

File hashes

Hashes for casbin-django-orm-adapter-test-1.0.0.tar.gz
Algorithm Hash digest
SHA256 26300f9288d1b15a9dd17d9bc814811d5c756d709d452e2083a635534c66ab1e
MD5 5be93a3f390fba3310ed81de0817d694
BLAKE2b-256 c92abd67a194953f156a485b84e33a804f51eef29d368eddafe0ba0a55271cb6

See more details on using hashes here.

File details

Details for the file casbin_django_orm_adapter_test-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for casbin_django_orm_adapter_test-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a364415d02bcaca9e607d07ed1a79ea6b1d20ada8552216fb5c37280f6fdb7fb
MD5 b36d95a49780992857d300dafb3603b5
BLAKE2b-256 90df38468088429e41b75f96410de289ec73ffa9a3d683ee58d25d431c9d1d4d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page