Skip to main content

Django's ORM adapter for PyCasbin

Project description

Django ORM Adapter for PyCasbin

GitHub Action Coverage Status Version PyPI - Wheel Pyversions Download Discord

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_ADAPTER

A string containing the adapter import path. Default 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_DB_ALIAS

The database the adapter uses. Default to "default".

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-1.3.0.tar.gz (367.3 kB view details)

Uploaded Source

Built Distribution

casbin_django_orm_adapter-1.3.0-py3-none-any.whl (400.8 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for casbin-django-orm-adapter-1.3.0.tar.gz
Algorithm Hash digest
SHA256 4c45ad3e6ed64f656f76c98db4be124502f1319261eccad73fb5290150aac128
MD5 13765366dfe6fe2a26d13132d7f118ca
BLAKE2b-256 3d66e558b6598a4f3680a6d9ccb68a0ea9dce408b570887e852b4593fbe951da

See more details on using hashes here.

File details

Details for the file casbin_django_orm_adapter-1.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for casbin_django_orm_adapter-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 92bb8812c5bf6b47b2646d58b5609dd65ed900a865b5d9331421020cf27ec5dc
MD5 f0b25f09662fe167144f16934b3654cc
BLAKE2b-256 e414f8dfe24108de072fdbb807f262f558cfc237df675ed58561fc1c8413c939

See more details on using hashes here.

Supported by

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