Skip to main content

SQLAlchemy Adapter for PyCasbin

Project description

SQLAlchemy Adapter for PyCasbin

GitHub Actions Coverage Status Version PyPI - Wheel Pyversions Download License

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
  • SQLite
  • Oracle
  • Microsoft SQL Server
  • Firebird
  • Sybase

Installation

pip install casbin_sqlalchemy_adapter

Simple Example

import casbin_sqlalchemy_adapter
import casbin

adapter = casbin_sqlalchemy_adapter.Adapter('sqlite:///test.db')

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

Soft Delete example

Soft Delete for casbin rules is supported, only when using a custom casbin rule model. The Soft Delete mechanism is enabled by passing the attribute of the flag indicating whether a rule is deleted to db_class_softdelete_attribute. That attribute needs to be of type sqlalchemy.Boolean.

adapter = Adapter(
    engine,
    db_class=MyCustomCasbinRuleModel,
    db_class_softdelete_attribute=MyCustomCasbinRuleModel.is_deleted,
)

Please be aware that this adapter only sets a flag like is_deleted to True. The provided model needs to handle the update of fields like deleted_by, deleted_at, etc. An example for this is given in examples/softdelete.py.

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_sqlalchemy_adapter-1.4.0.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file casbin_sqlalchemy_adapter-1.4.0.tar.gz.

File metadata

File hashes

Hashes for casbin_sqlalchemy_adapter-1.4.0.tar.gz
Algorithm Hash digest
SHA256 3cc439e3911a0f0c0de66ffde7e0de0586be1e1c772302e003d84164f4bfe291
MD5 30e3bb6028abd14796e1d3f2862137b3
BLAKE2b-256 1a4f2e980d63960acdb106edc97b40abd42a752f71082ded7247a0fde8a0dece

See more details on using hashes here.

File details

Details for the file casbin_sqlalchemy_adapter-1.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for casbin_sqlalchemy_adapter-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a3e4e5d05e47fc6e04995ac26d36f53243f87ac9e3c66b24874ce6353e784897
MD5 f380d1a07f3f51818a2b183329e34c6a
BLAKE2b-256 8054cd2fd15e94426feb1744171b3e9f075f9880e115a69c1e3356ad2a07b437

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