Asynchronous Django ORM Adapter is the async Django 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
pip install casbin-async-django-orm-adapter
Add async_casbin_adapter.apps.AsyncCasbinAdapterConfig to your INSTALLED_APPS
# settings.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
INSTALLED_APPS = [
...
'async_casbin_adapter.apps.AsyncCasbinAdapterConfig',
...
]
CASBIN_MODEL = os.path.join(BASE_DIR, 'casbin.conf')To run schema migration, execute python manage.py migrate async_casbin_adapter
# views.py
from async_casbin_adapter.enforcer import get_enforcer
async 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.
enforcer = await get_enforcer()
if e.enforce(sub, obj, act):
# permit alice to read data1casbin_django_orm_adapter
pass
else:
# deny the request, show an error
passA string containing the file location of your casbin model.
A string containing the adapter import path. Default to the django adapter shipped with this package: async_casbin_adapter.adapter.AsyncAdapter
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',)
The database the adapter uses. Default to "default".
Watcher instance to be set as the watcher on the enforcer instance.
Role manager instance to be set as the role manager on the enforcer instance.
This project is licensed under the Apache 2.0 license.