New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

casbin-sqlalchemy-adapter

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

casbin-sqlalchemy-adapter

SQLAlchemy Adapter for PyCasbin

  • 1.4.0
  • PyPI
  • Socket score

Maintainers
1

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.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc