跳转到主要内容

PyCasbin的异步Redis适配器

项目描述

PyCasbin的异步Redis适配器

GitHub Actions Coverage Status Version PyPI - Wheel Pyversions Download License

Async Redis Adapter是PyCasbin的异步redis适配器。使用这个库,Casbin可以从redis加载策略或将策略保存到其中。

安装

pip install casbin_async_redis_adapter

简单示例

import asyncio
from casbin_async_redis_adapter import Adapter
import casbin


async def get_enforcer():
    adapter = Adapter("localhost", 6379, encoding="utf-8")
    e = casbin.AsyncEnforcer("rbac_model.conf", adapter)
    model = e.get_model()

    model.clear_policy()
    model.add_policy("p", "p", ["alice", "data1", "read"])
    await adapter.save_policy(model)

    model.clear_policy()
    model.add_policy("p", "p", ["bob", "data2", "write"])
    await adapter.save_policy(model)

    model.clear_policy()
    model.add_policy("p", "p", ["data2_admin", "data2", "read"])
    await adapter.save_policy(model)

    model.clear_policy()
    model.add_policy("p", "p", ["data2_admin", "data2", "write"])
    await adapter.save_policy(model)

    model.clear_policy()
    model.add_policy("g", "g", ["alice", "data2_admin"])
    await adapter.save_policy(model)

    e = casbin.AsyncEnforcer("rbac_model.conf", adapter)
    await e.load_policy()

    return e


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.


async def main():
    e = await get_enforcer()
    if e.enforce("alice", "data1", "read"):
        print("alice can read data1")
    else:
        print("alice can not read data1")


asyncio.run(main())

配置

Adapter()默认启用decode_responses并支持任何Redis参数配置。

要使用casbin_redis_adapter,您必须提供以下参数配置

  • host:redis服务的地址
  • port:redis服务端口

以下参数默认提供

  • db:redis数据库,默认为0
  • username:redis用户名,默认为None
  • password:redis密码,默认为None
  • key:存储Casbin规则的key,默认为casbin_rules

有关更多参数,请参阅redis-py

获取帮助

许可协议

此项目采用Apache 2.0许可协议

项目详情


下载文件

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

源代码分发

casbin_async_redis_adapter-1.2.0.tar.gz (10.1 kB 查看哈希值)

上传时间: 源代码

构建分发

casbin_async_redis_adapter-1.2.0-py3-none-any.whl (11.0 kB 查看哈希值)

上传时间: Python 3

由以下支持