Casbin intergration for actix framework
Add it to Cargo.toml
rust
casbin = { version = "0.6.2", default-features = false }
actix-casbin = "0.1.1"
actix-rt = "1.1.0"
```rust use actix_casbin::{CasbinActor, CasbinCmd, CasbinResult}; use casbin::prelude::*;
async fn main() -> Result<()> { let m = DefaultModel::fromfile("examples/rbacmodel.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");
}
} ```
This project is licensed under