Feat: update casbin and dependencies

2 files changed
tree: b564d953801d02fa7039380503b78b7c1ed59b75
  1. .github/
  2. examples/
  3. src/
  4. tests/
  5. .gitignore
  6. Cargo.toml
  7. LICENSE
  8. README.md
README.md

Actix Casbin

Crates.io Docs Auto Build codecov

Casbin intergration for actix framework

Install

Add it to Cargo.toml

actix-casbin = "0.2.0"
actix-rt = "1.1.1"

Example

use actix_casbin::casbin::{DefaultModel, FileAdapter, Result};
use actix_casbin::{CasbinActor, CasbinCmd, CasbinResult};

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

    let a = FileAdapter::new("examples/rbac_policy.csv");

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

    let res = addr
        .send(CasbinCmd::Enforce(
            vec!["alice", "data1", "read"]
                .iter()
                .map(|s| (*s).to_string())
                .collect(),
        ))
        .await;

    let test_enforce = match res {
        Ok(Ok(CasbinResult::Enforce(result))) => result,
        _ => panic!("Actor Error"),
    };
    if test_enforce {
        println!("Enforce Pass");
    } else {
        println!("Enforce Fail");
    }
    Ok(())
}

License

This project is licensed under