Skip to content

Commit

Permalink
refactor: [#615] explicit Casbin imports and policy now defined as st…
Browse files Browse the repository at this point in the history
…ring
  • Loading branch information
mario-nt committed Jul 3, 2024
1 parent 22b0e67 commit 3671c78
Showing 1 changed file with 22 additions and 13 deletions.
35 changes: 22 additions & 13 deletions src/services/authorization.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//! Authorization service.
use std::sync::Arc;

use casbin::prelude::*;
use casbin::{CoreApi, DefaultModel, Enforcer, MgmtApi};
use serde::{Deserialize, Serialize};
use tokio::sync::RwLock;

Expand Down Expand Up @@ -92,7 +92,13 @@ impl CasbinEnforcer {
.await
.expect("Error loading the model");

let policy = casbin_configuration.policy;
// Converts the policy from a string type to a vector
let policy = casbin_configuration
.policy
.lines()
.filter(|line| !line.trim().is_empty())
.map(|line| line.split(',').map(|s| s.trim().to_owned()).collect::<Vec<String>>())
.collect();

let mut enforcer = Enforcer::new(model, ()).await.expect("Error creating the enforcer");

Expand All @@ -106,7 +112,7 @@ impl CasbinEnforcer {
#[allow(dead_code)]
struct CasbinConfiguration {
model: String,
policy: Vec<Vec<std::string::String>>,
policy: String,
}

impl CasbinConfiguration {
Expand All @@ -127,16 +133,19 @@ impl CasbinConfiguration {
m = r.role == p.role && r.action == p.action
",
),
policy: vec![
vec!["admin".to_string(), "AddCategory".to_string()],
vec!["admin".to_string(), "DeleteCategory".to_string()],
vec!["admin".to_string(), "GetSettings".to_string()],
vec!["admin".to_string(), "GetSettingsSecret".to_string()],
vec!["admin".to_string(), "AddTag".to_string()],
vec!["admin".to_string(), "DeleteTag".to_string()],
vec!["admin".to_string(), "DeleteTorrent".to_string()],
vec!["admin".to_string(), "BanUser".to_string()],
],
policy: String::from(
"
admin, AddCategory
admin, DeleteCategory
admin, GetSettings
admin, GetSettingsSecret
admin, AddTag
admin, DeleteTag
admin, DeleteTorrent
admin, BanUser
",
),
}
}
}

0 comments on commit 3671c78

Please sign in to comment.