Skip to main content

Module permissions

Module permissions 

Source
Expand description

Permission and role-based access control (RBAC)

This module provides a generic RBAC system using traits. Modules can implement these traits with their own domain entities.

§Generic Design

Instead of hardcoded entity structs, this module uses traits:

  • PermissionLike - Any type representing a permission
  • RoleLike - Any type representing a role with permissions
  • PermissionChecker - Trait for checking permissions

§Usage

ⓘ
// Module implements traits for its domain entities
impl PermissionLike for MyPermission {
    fn name(&self) -> &str { &self.name }
    fn resource(&self) -> &str { &self.resource }
    fn action(&self) -> &str { &self.action }
}

Structs§

InMemoryPermissionService
In-memory permission service for testing and simple use cases
SimplePermission
Simple permission for default RBAC implementation
SimpleRole
Simple role for default RBAC implementation

Traits§

PermissionChecker
Trait for checking permissions
PermissionLike
Trait for permission-like types
RoleLike
Trait for role-like types

Type Aliases§

Permission
Type alias for backwards compatibility
PermissionService
Type alias for backwards compatibility
Role
Type alias for backwards compatibility