actix-casbin 0.1.1

An Actix actor for casbin
Documentation

Actix Casbin

Crates.io Docs Auto Build codecov

Casbin intergration for actix framework

Install

Add it to Cargo.toml

casbin = { version = "0.6.2", default-features = false }
actix-casbin = "0.1.1"
actix-rt = "1.1.0"

Example

use actix_casbin::{CasbinActor, CasbinCmd, CasbinResult};
use casbin::prelude::*;

#[actix_rt::main]
async fn main() -> Result<()> {
    let m = DefaultModel::from_file("examples/rbac_model.conf")
        .await
        .unwrap();
    let a = FileAdapter::new("examples/rbac_policy.csv");

    let addr = CasbinActor::new(m, a).await.unwrap();

    if let CasbinResult::Enforce(test_enforce) = addr
        .send(CasbinCmd::Enforce(
            vec!["alice", "data1", "read"]
                .iter()
                .map(|s| s.to_string())
                .collect(),
        ))
        .await
        .unwrap()
        .unwrap()
    {
        if test_enforce {
            println!("Enforce Pass");
        } else {
            println!("Enforce Fail");
        }
        Ok(())
    } else {
        panic!("Actor Error");
    }
}

License

This project is licensed under