Skip to main content

Async Redis Adapter for PyCasbin

Project description

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.

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

casbin_async_redis_adapter-1.0.0.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

casbin_async_redis_adapter-1.0.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file casbin_async_redis_adapter-1.0.0.tar.gz.

File metadata

File hashes

Hashes for casbin_async_redis_adapter-1.0.0.tar.gz
Algorithm Hash digest
SHA256 613fdadf3b622402f2755357f62f80cf69d6653b123bc8ebdb07404b331748af
MD5 947b300e7b52451f8f06c401b343b8d4
BLAKE2b-256 0639f332ca4a7e029bad4a0603ce77305ea9dd3cd08d3a51998492238fdd0f60

See more details on using hashes here.

File details

Details for the file casbin_async_redis_adapter-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for casbin_async_redis_adapter-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7ad4ae2986f70f400f49174ddf5c8f1d3cc170477c7bae8acbd069c261fd8ee7
MD5 03c9428021466a8f770f1fa65ee8eaf5
BLAKE2b-256 d73494de7a69095e0d83accc31a73e5848ece32197ab2d130265d942dccfcb44

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page