Async Redis Adapter for PyCasbin
Async Redis Adapter is the async redis adapter for PyCasbin. With this library, Casbin can load policy from redis or save policy to it.
Installation
pip install casbin_async_redis_adapter
Simple Example
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())
Configuration
Adapter() enable decode_responses by default and supports any Redis parameter configuration.
To use casbin_redis_adapter, you must provide the following parameter configuration
host: address of the redis serviceport: redis service port
The following parameters are provided by default
db: redis database, default is0username: redis username, default isNonepassword: redis password, default isNonekey: casbin rule to store key, default iscasbin_rules
For more parameters, please follow redis-py
Getting Help
License
This project is licensed under the Apache 2.0 license.
Metadata
Release files for casbin-async-redis-adapter 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| casbin_async_redis_adapter-1.2.0.tar.gz | 10.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| casbin_async_redis_adapter-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.1 kB
Release files / casbin_async_redis_adapter-1.2.0.tar.gz
| Download URL | casbin_async_redis_adapter-1.2.0.tar.gz |
|---|---|
| Size | 10.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
45a1b419b3e5d98b34b3f8166836e4db96759576606a17e3f52877b6eaad66c9
|
|
BLAKE2b-256 checksum How to use checksums |
b80c3f00f0c40835c49a2e13204dc2f8913208e3236700e75ce5b6ea2f6b62fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.12.2
|
Release files / casbin_async_redis_adapter-1.2.0-py3-none-any.whl
| Download URL | casbin_async_redis_adapter-1.2.0-py3-none-any.whl |
|---|---|
| Size | 11.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9e08b6b3ae6fcd9463507cd23c188b169cb18e645fb98e6594a1ba6838b97700
|
|
BLAKE2b-256 checksum How to use checksums |
269377386dde0dfef8f14c68ef42f0efbb321fad9b0568667e96c4b0ca130d47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.12.2
|