1pub 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>;