Skip to main content

Async Redis Adapter for PyCasbin

GitHub Actions Coverage Status Version PyPI - Wheel Pyversions Download License

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 service
  • port: redis service port

The following parameters are provided by default

  • db: redis database, default is 0
  • username: redis username, default is None
  • password: redis password, default is None
  • key: casbin rule to store key, default is casbin_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)

Source distribution for casbin-async-redis-adapter 1.2.0
File Size Uploaded
casbin_async_redis_adapter-1.2.0.tar.gz 10.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for casbin-async-redis-adapter 1.2.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page