跳转到主要内容

PyCasbin的SQLAlchemy适配器

项目描述

PyCasbin的SQLAlchemy适配器

GitHub Actions Coverage Status Version PyPI - Wheel Pyversions Download License

SQLAlchemy适配器是SQLAlchemy的适配器,用于PyCasbin。使用这个库,Casbin可以从支持SQLAlchemy的数据库加载策略或将策略保存到其中。

基于官方支持数据库,当前支持的数据库有

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

安装

pip install casbin_sqlalchemy_adapter

简单示例

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

软删除示例

支持casbin规则的软删除,仅当使用自定义的casbin规则模型时。通过将标志属性传递给db_class_softdelete_attribute来启用软删除机制,该属性表示规则是否被删除。该属性需要是sqlalchemy.Boolean类型。

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

请注意,此适配器仅设置一个类似于is_deleted的标志为True。提供的模型需要处理如deleted_bydeleted_at等字段的更新。有关此的示例,请参阅examples/softdelete.py

获取帮助

许可协议

本项目采用Apache 2.0许可证

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

casbin_sqlalchemy_adapter-1.4.0.tar.gz (12.4 kB 查看哈希值)

上传时间

构建分布

casbin_sqlalchemy_adapter-1.4.0-py3-none-any.whl (10.1 kB 查看哈希值)

上传时间 Python 3

由以下支持