TeamManager kan rollen/leden niet beheren + self-service privilege-escalatie via role-veld (follow-up #22) #27
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?
Context (follow-up van #22)
TeamManager laat admins rollen wijzigen en leden verwijderen, maar de huidige rules op
team_membersstaan dat niet toe:updateRule: '@request.auth.id = id'— alleen self-update;db.updateTeamMember(anderId, {role})faaltdeleteRule: null— alleen superusers;db.deleteTeamMember(id)faaltHet beheerscherm is daarmee functieloos voor app-admins.
Daarnaast: twee verweven problemen
rolenaar"admin"patchen via de REST-API. De login-resync corrigeert dat pas bij de eerstvolgende login; tot die tijd heeft de gebruiker admin-toegang in de app. Moet dicht in dezelfde wijziging (anders wordt het door de nieuwe admin-rules pas écht gevaarlijk).ENTRA_ADMIN_EMAILS(ADR-004). Elke UI-promotie zou dus bij de volgende login worden teruggedraaid — beheer via TeamManager blijft schijn zolang de resync ook demoteert.Fix
1781000003+ basis-migratie + setup-script-mirror):updateRule: '(@request.auth.id = id && @request.body.role:isset = false) || @request.auth.role = "admin"'— self-update mag (onboarding raaktroleniet), maar hetrole-veld alleen door admins; dicht meteen de escalatie.deleteRule: '@request.auth.role = "admin"'pb_hooks/team_members.pb.js): de allow-list garandeert admin-rechten (promotie bij login blijft werken), maar demoteert niet meer — UI-promoties blijven staan. Demotie loopt via TeamManager; allow-list-leden zijn niet via de UI te demoteren (allow-list wint bij volgende login). ADR-004 wordt hierop aangepast.Verificatie (mock-OIDC matrix)
roleNIET wijzigen (escalatie dicht), wél eigen onboarding-velden