sertione / async-sqlalchemy-adapter

Async SQLAlchemy Adapter for PyCasbin with schema support

Home Page:https://github.com/casbin/pycasbin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

async-sqlalchemy-adapter

Async SQLAlchemy Adapter for PyCasbin
GitHub Actions Coverage Status Version PyPI - Wheel Pyversions Download License

Asynchronous SQLAlchemy Adapter is the SQLAlchemy adapter for PyCasbin. With this library, Casbin can load policy from SQLAlchemy supported database or save policy to it.

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

  • PostgreSQL
  • MySQL
  • MariaDB
  • SQLite
  • Oracle
  • Microsoft SQL Server
  • Firebird

Installation

pip install casbin_async_sqlalchemy_adapter

Simple Example

from casbin_async_sqlalchemy_adapter import Adapter
import casbin

engine = create_async_engine("postgresql+asyncpg://user:pass@host:5432/db_name")
schema_name = 'not_public'
adapter = Adapter(engine, schema_name)

e = casbin.Enforcer('path/to/model.conf', adapter)

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 data1
    pass
else:
    # deny the request, show an error
    pass

Getting Help

License

This project is licensed under the Apache 2.0 license.

About

Async SQLAlchemy Adapter for PyCasbin with schema support

https://github.com/casbin/pycasbin

License:Apache License 2.0


Languages

Language:Python 100.0%