Expand description
§Manage Role
§File: IPC/Permission/Role/ManageRole.rs
§Role in Mountain Architecture
Defines and manages role structures for role-based access control (RBAC), providing organizational hierarchy for user permissions across the system.
§Primary Responsibility
Define role and permission structures for RBAC system with inheritance support.
§Secondary Responsibilities
- Create role definitions with assigned permissions
- Create permission definitions with categorization
- Support role hierarchy and permission inheritance
- Validate role and permission integrity
§Dependencies
External Crates:
serde- Serialization for storage and transportstd::collections::HashSet- Unique permission tracking
Internal Modules:
Validate::{SecurityContext}- Security context validationLogEvent::{SecurityEvent}- Security event logging
§Dependents
Validate- Uses roles for permission validationTauriIPCServer- Manages roles for IPC authorization
§VSCode Pattern Reference
Matches VSCode’s role system in
vs/platform/permissions/common/permissions.ts
- Hierarchical role definitions
- Permission categorization
- Role inheritance support
- Permission uniqueness validation
§Security Considerations
- Role names are case-sensitive for precise control
- Permission names follow hierarchical naming (category.action)
- Role inheritance prevents permission escalation through ambiguity
- Role modifications logged for audit trails
- Default roles cannot be deleted without confirmation
- Permission deduplication prevents duplicate permissions in roles
§Performance Considerations
- HashSet for unique permissions enables O(1) lookup
- Role hierarchy flattened for fast permission resolution
- Lazy initialization of role collections
- Minimal copying of permission data
§Error Handling Strategy
- Returns Result for explicit error handling
- Duplicate permissions ignored with warning
- Invalid role/permission names rejected early
- Circular dependency detection in role hierarchy
§Thread Safety
- Immutable role definitions after creation
- Clone semantics for safe sharing across threads
§TODO Items
- Implement role hierarchy with parent/child relationships
- Add permission negation (deny permissions)
- Support role templates for common permission sets
Structs§
- Permission
- Permission definition
- Role
- Role definition for RBAC system
Functions§
- Create
Admin Role - Create administrator role
- Create
Developer Role - Create developer role
- Create
Standard Permissions - Create all standard permissions
- Create
Standard Roles - Create all standard roles
- Create
User Role - Create standard user role