https://github.com/casbin-rs/diesel-adapter
use diesel_adapter::casbin::prelude::*;
use diesel_adapter::DieselAdapter;
use dotenvy::dotenv;
use std::env;
pub async fn init() -> Result<()> {
dotenv().ok();
let m = DefaultModel::from_file("assets/order_create.conf").await?;
let database_url = env::var("DATABASE_URL").expect("DATABASE_URL must be set");
let pool_size = env::var("DATABASE_POOL_SIZE").expect("DATABASE_POOL_SIZE must be set");
let a = DieselAdapter::new(
database_url,
pool_size
.parse::<u32>()
.expect("pool size must be a number"),
)?;
let mut e = Enforcer::new(m, a).await?;
e.add_policy(vec![
String::from("upstream_boss"),
String::from("agent"),
String::from("upstream_boss"),
String::from("agent"),
String::from("upstream_boss"),
])
.await?;
e.save_policy().await?;
Ok(())
}
DATABASE_URL=postgresql://localhost:5432/postgres
DATABASE_POOL_SIZE=4


