Skip to content

[Feature] Extend Fine-Grained Permission Module and Plugin-Based Permission System Description #2053

@s1yle

Description

@s1yle

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

  1. 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.
  2. 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.
  3. Compliance Requirements: Audit logs + fine-grained permissions are core compliance requirements for government/enterprise and hosting scenarios.
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions