Description
1. Pain Points of the Current Permission System
The current permission logic of MCSManager only distinguishes between two levels: "Top Administrator" and "Instance-Level Permissions", which leads to the following problems:
- Overly Coarse Permission Granularity: Cannot implement fine-grained control over operations such as "instance start/stop", "file upload/download", "configuration modification", "log viewing", etc.
- No Plugin-Based Extension Capability: Cannot integrate with third-party permission systems (e.g., LDAP/OAuth2/CAS) or customize permission verification rules.
- Lack of Permission Auditing: No audit logs for permission changes or attempted unauthorized access, failing to meet enterprise-level compliance requirements.
- Hard-Coded Logic Difficult to Extend: Permission judgments (e.g.,
isTopPermission) are hard-coded in core code, resulting in high secondary development costs.
2. Expected Core Capabilities to Add
(1) Fine-Grained RBAC (Role-Based Access Control) Model
- Support custom roles (e.g., "Read-Only User", "Operations & Maintenance", "Auditor", "Instance-Specific Administrator", etc.).
- Abstract all operations into "Permission Points" (e.g.,
instance:start/file:delete/setting:modify), and support batch assignment/revocation of permission points for roles.
- Retain the existing "Top Administrator" and "Instance-Level Permissions" logic to ensure backward compatibility.
(2) Plugin-Based Permission System
- Server-Side: Support injecting custom permission verification logic via middleware/hooks (e.g., replace/enhance the existing
permission middleware).
- Frontend: Support dynamic rendering of menus/buttons based on backend permission points; plugins can register frontend permission rendering rules.
- Engineering: Add a
plugins directory to manage permission plugins uniformly, and support enabling/disabling plugins via configuration.
(3) Permission Auditing Capabilities
- Record operation logs for permission changes (e.g., role creation, permission point adjustment) and attempted unauthorized access.
- Support exporting audit logs to meet enterprise compliance requirements.
3. Implementation Constraints
- Low Invasiveness: Extended logic shall not break existing core code; prioritize implementation via "hooks/middleware/configuration".
- Performance: Fine-grained permission verification shall include caching mechanisms to avoid significant increases in API response time.
- Compatibility: Ensure the extended permission logic does not affect existing users' permission systems.
Reason
- Team/Enterprise Collaboration Scenarios: When multiple users manage MCSManager, coarse-grained permissions easily lead to misoperations (e.g., ordinary users deleting core instances) or security risks from excessive permissions.
- Customization Requirements Adaptation: Different scenarios (e.g., hosting service providers, enterprise intranets) need to integrate with different permission systems; pluginization can significantly reduce custom development costs.
- Compliance Requirements: Audit logs + fine-grained permissions are core compliance requirements for government/enterprise and hosting scenarios.
- Ecosystem Expansion Value: A plugin-based permission system allows the community to contribute more permission-related plugins (e.g., third-party authentication integration), improving the project's flexibility and ecosystem richness.
Description
1. Pain Points of the Current Permission System
The current permission logic of MCSManager only distinguishes between two levels: "Top Administrator" and "Instance-Level Permissions", which leads to the following problems:
isTopPermission) are hard-coded in core code, resulting in high secondary development costs.2. Expected Core Capabilities to Add
(1) Fine-Grained RBAC (Role-Based Access Control) Model
instance:start/file:delete/setting:modify), and support batch assignment/revocation of permission points for roles.(2) Plugin-Based Permission System
permissionmiddleware).pluginsdirectory to manage permission plugins uniformly, and support enabling/disabling plugins via configuration.(3) Permission Auditing Capabilities
3. Implementation Constraints
Reason