llm_config_rbac/
lib.rs

1//! Role-Based Access Control (RBAC) for LLM Config Manager
2//!
3//! This module provides comprehensive RBAC capabilities including:
4//! - Predefined roles (Admin, Editor, Viewer, Auditor)
5//! - Fine-grained permissions
6//! - Policy enforcement
7//! - Role hierarchies
8
9pub mod permissions;
10pub mod policy;
11pub mod roles;
12
13pub use permissions::{Action, Permission, Resource};
14pub use policy::PolicyEnforcer;
15pub use roles::{Role, RoleAssignment};
16
17use thiserror::Error;
18
19#[derive(Debug, Error)]
20pub enum RbacError {
21    #[error("Access denied: {0}")]
22    AccessDenied(String),
23
24    #[error("Invalid role: {0}")]
25    InvalidRole(String),
26
27    #[error("Invalid permission: {0}")]
28    InvalidPermission(String),
29
30    #[error("User not found: {0}")]
31    UserNotFound(String),
32}
33
34pub type Result<T> = std::result::Result<T, RbacError>;