RBAC Permission Audit: adatbázis és frontend szinkronizáció vizsgálata #298
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Mérföldkő: RBAC Refaktor\nCél: A DB-driven SystemPermission/SystemRole rendszer és a frontend admin permission UI közötti szinkronizáció ellenőrzése, valamint mock adatok keresése a frontendben\n\n### 🔗 Függőségek (Dependencies)\n- Bemenet (Mikre támaszkodik): system.roles, system.permissions, system.role_permissions tábák, backend RBAC service, frontend admin Vue komponensek\n- Kimenet (Mik támaszkodnak rá): Admin permission mátrix frontend, RequirePermission védőréteg, user profil system_capabilities mező\n\n### 📝 Elemzés\nAz audit során az alábbi kritikus problémák kerültek feltárásra:\n\n1. KRITIKUS: RBAC kettős rendszer párhuzamosan fut\n- Scope-based admin RBAC (AdminAction enum: EDIT_DATA, VIEW_DATA, stb.) és DB-driven permission (SystemPermission tábla: fleet:view, user:create, stb.) két külön, össze nem kötött rendszerként fut.\n- rbac_service.get_permitted_actions() csak SUPERADMIN-nak ad vissza action-öket, más szerepköröknek üres set\n- /admin/permissions/matrix endpoint hibás adatot ad nem-SUPERADMIN szerepköröknek\n\n2. KRITIKUS: system_capabilities és org_capabilities üres a /auth/me válaszban\n- A _build_user_response() függvényben a system_capabilities mindig üres dict {}, mert a régi keménykódolt mátrix el lett távolítva\n- A frontend UserProfile interface (stores/auth.ts) tartalmazza ezeket a mezőket, de a backend sosem tölti ki\n\n3. KÖZEPES: Capability osztály és SystemPermission tábla formátum eltérés\n- Régi Capability konstansok (can_manage_users, can_view_system_logs) vs új permission code-ok (fleet:view, user:create)\n- Nincs mapping vagy átmeneti réteg a két formátum között\n\n4. MEGÁLLAPÍTÁS: NINCS mock adat a frontendben\n- A frontend admin /permissions oldala valós API hívásokkal dolgozik (GET /admin/permissions/roles, GET /admin/permissions)\n- A middleware (auth.ts) helyesen ellenőrzi a staff role-okat a backend /auth/me válasza alapján\n- Az adatbázisban lévő 30 permission és 6 role helyesen jelenik meg a frontend 2D mátrix táblájában