refactor(rbac): migrate API permission checks to resource:action format

Replace all legacy dotted permission codes (vms.view, proxmox.manage, ...)
in PermissionChecker/has_permission across app/api with the new
resource:action format (vm:view, server:manage, ...), per LEGACY_PERMISSION_MAP.
All 33 codes used by the API are now registered in the permission registry.

Also switch the /api/auth/me admin branch to get_all_permissions_v2 so the
endpoint emits permissions in the new format only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-20 02:07:48 +05:00
parent 57513c4dc9
commit de967c35e0
19 changed files with 220 additions and 220 deletions

View File

@@ -91,7 +91,7 @@ async def get_logs(
page: int = Query(1, ge=1, description="Page number"),
limit: int = Query(50, ge=1, le=500, description="Items per page"),
db: Session = Depends(get_db),
current_user: User = Depends(PermissionChecker("logs.view"))
current_user: User = Depends(PermissionChecker("log:view"))
):
"""Get logs with filtering and pagination"""
@@ -146,7 +146,7 @@ async def get_logs(
async def get_log_stats(
hours: int = Query(24, ge=1, le=720, description="Period in hours"),
db: Session = Depends(get_db),
current_user: User = Depends(PermissionChecker("logs.view"))
current_user: User = Depends(PermissionChecker("log:view"))
):
"""Get log statistics for the specified period"""
stats = LoggingService.get_stats(db, hours=hours)
@@ -157,7 +157,7 @@ async def get_log_stats(
async def cleanup_logs(
days: int = Query(30, ge=1, le=365, description="Delete logs older than this many days"),
db: Session = Depends(get_db),
current_user: User = Depends(PermissionChecker("logs.delete"))
current_user: User = Depends(PermissionChecker("log:delete"))
):
"""Delete old logs (admin only)"""
if not current_user.is_admin: