Async Redis Adapter for PyCasbin
Project description
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 is0
username
: redis username, default isNone
password
: redis password, default isNone
key
: 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.
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
Built Distribution
File details
Details for the file casbin_async_redis_adapter-1.2.0.tar.gz
.
File metadata
- Download URL: casbin_async_redis_adapter-1.2.0.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45a1b419b3e5d98b34b3f8166836e4db96759576606a17e3f52877b6eaad66c9 |
|
MD5 | d3e9097e2cec53bedd5a1e67ffa43b93 |
|
BLAKE2b-256 | b80c3f00f0c40835c49a2e13204dc2f8913208e3236700e75ce5b6ea2f6b62fd |
File details
Details for the file casbin_async_redis_adapter-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: casbin_async_redis_adapter-1.2.0-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e08b6b3ae6fcd9463507cd23c188b169cb18e645fb98e6594a1ba6838b97700 |
|
MD5 | c6f3bb8de847d3ef02836caa6afc80f9 |
|
BLAKE2b-256 | 269377386dde0dfef8f14c68ef42f0efbb321fad9b0568667e96c4b0ca130d47 |