RBAC-permissieregister
Dit register is de technische en functionele naamgevingsbron voor de overgang van rolgebaseerde autorisatie naar permission-based RBAC binnen OefenHub.
De Permissions-tabel is de runtime bron van waarheid. Dit document beschrijft welke permission-codes bij de huidige ontwerpversie horen en hoe zij in code, tests, seeddata, routeguards, menucompositie en domeinservices gebruikt moeten worden.
Uitgangspunten
- Rollen blijven bestaan, maar zijn geen autorisatiebeslissing meer.
- Rollen zijn bundels van permissies via
RolePermissions. - Een gebruiker kan meerdere rollen hebben; de effectieve rechten zijn de distinct union van alle actieve permissies uit alle actieve rollen.
- De leerlingrol blijft exclusief en mag niet met andere rollen worden gecombineerd.
- Docent, ouder/voogd en beheerder kunnen gecombineerd worden; de UI wordt samengesteld uit permissiegedreven blokken.
- Een zichtbare knop, tegel, menu-item, frontpageblok of route is nooit autorisatiebewijs.
- Iedere beveiligde ingang declareert de vereiste permission-code expliciet via metadata, guard of servicecontract.
- De code bevat geen centrale C#-catalogus als tweede bron van waarheid. Startup-/testvalidatie controleert wel of alle in code gedeclareerde permission-codes in seed/database bestaan.
- Objecttoegang blijft domeinspecifiek: een permissie opent de ingang; het domein bepaalt daarna of het concrete object binnen scope valt.
- Beheer van rollen en permissies zelf is buiten scope van Feature 11-5 en wordt verder uitgewerkt in
userstories/17_beheerderervaring/091-uc-admin-rbac-001-rollen-en-permissies-beheren-placeholder.md.
Naamgevingsconventie
Permissies zijn lowercase, puntgescheiden en volgen:
<resource>.<action>[.<scope>]
Regels:
- Gebruik Engels voor technische codes.
- Gebruik kebab-case binnen een segment wanneer één begrip meerdere woorden heeft.
- Gebruik
viewvoor scherm-, blok-, menu- en frontpagezichtbaarheid. - Gebruik
readvoor data raadplegen. - Gebruik
create,update,delete,manage,export,start,complete,invite,accept,reject,invalidatevoor betekenisvolle acties. - Gebruik scopes zoals
own,assigned,children,collaborating,all,targeted,public,systemalleen wanneer zij de betekenis van de permissie beperken. - Vermijd kapstokpermissies zoals
student.manageofadmin.full. - Maak geen permissies per puur visueel element, tenzij het element een zelfstandige security-impact heeft.
Baseline permissies per applicatieschil
| Permission | Betekenis | Primaire rolbundel(s) | Extra domein-/contextcontrole |
|---|---|---|---|
frontpage.view.public | Publieke fallback/frontpage bekijken zonder reguliere rolcontext. | Geen of systeem | Alleen publieke content; geen accountdata. |
frontpage.view.no-role | Beperkte frontpage voor geauthenticeerde gebruiker zonder bruikbare rol. | Geen rol / systeem | Actief account, geen actieve publieke of niet-publieke rolcontext. |
frontpage.view.student | Leerlingfrontpageblok tonen. | Student | Leerlingrol exclusief; actieve niveaucontext waar vereist. |
frontpage.view.teacher | Docentfrontpageblok tonen. | Teacher | Docentdata blijft gescoped op eigenaar/collaborator/leerlingrelaties. |
frontpage.view.guardian | Ouder-/voogdfrontpageblok tonen. | Guardian | Alleen samenvatting op basis van actieve GuardianStudent-relaties. |
frontpage.view.administrator | Beheerderfrontpageblok tonen. | Beheerder | Beheerderdata alleen via beheercontext; geen live-bypass. |
menu.view.practice | Leerlingoefenmenu tonen. | Student | Alleen zichtbaarheid; acties autoriseren opnieuw. |
menu.view.shared-practice | Gedeelde-oefeningenmenu tonen. | Student | Delen/ontvangen blijft feature- en relatieafhankelijk. |
menu.view.teacher-catalog | Docentoefenaanbod/niveaus-menu tonen. | Teacher | Objectscope via niveau-eigenaarschap/collaboration. |
menu.view.teacher-students | Docentleerlingenmenu tonen. | Teacher | Docent-leerlingrelatie vereist voor data. |
menu.view.teacher-live | Docent live-meekijkenmenu tonen. | Teacher | Live-start vereist actieve run en geldige leerling-/niveaucontext. |
menu.view.guardian-children | Ouder-/voogdkinderenmenu tonen. | Guardian | Kinderen alleen via actieve GuardianStudent-relaties. |
menu.view.guardian-live | Ouder-/voogd live-menu tonen. | Guardian | Live-start alleen voor actief gekoppeld kind. |
menu.view.communication | Berichtenmenu tonen. | Student, Teacher, Guardian, Beheerder | Mailboxdata alleen eigen threads/berichten. |
menu.view.relationships | Relatiemenu tonen. | Student, Teacher, Guardian, Beheerder | Acties blijven rol-/relatietype-specifiek. |
menu.view.support | Meldingen/supportmenu tonen. | Student, Teacher, Guardian, Beheerder | Eigen tickets of beheercontext. |
menu.view.administrator-dashboard | Beheerdashboardmenu tonen. | Beheerder | Geen autorisatie voor role/permission management. |
menu.view.administrator-site-settings | Site-instellingenmenu tonen. | Beheerder | Alleen beheersite-instellingen. |
menu.view.administrator-accounts | Accountbeheermenu tonen. | Beheerder | Geen beheer van permissies/rolpermissies in Feature 11-5. |
profile-menu.view.profile | Profielmenu-item tonen. | Student, Teacher, Guardian, Beheerder | Alleen eigen profielactie. |
profile-menu.view.preferences | Voorkeurenmenu-item tonen. | Student, Teacher, Guardian, Beheerder | Alleen eigen voorkeuren. |
profile-menu.view.accessibility | Toegankelijkheidsmenu-item tonen. | Student, Teacher, Guardian, Beheerder | Alleen eigen toegankelijkheidsinstellingen. |
profile-menu.view.student-history | Leerlinggeschiedenis in profielmenu tonen. | Student | Alleen eigen geschiedenis. |
profile-menu.view.guardian-children | Kinderen in profielmenu tonen. | Guardian | Alleen gekoppelde kinderen. |
profile-menu.view.logout | Uitloggen tonen. | Student, Teacher, Guardian, Beheerder | Geldige sessie of idempotente logout. |
Account, profiel en publieke rolkeuze
| Permission | Betekenis | Primaire rolbundel(s) | Extra domein-/contextcontrole |
|---|---|---|---|
profile.read.own | Eigen profiel bekijken. | Student, Teacher, Guardian, Beheerder | Sessie-user is eigenaar. |
profile.update.own | Eigen profielgegevens wijzigen. | Student, Teacher, Guardian, Beheerder | Geen e-mail/wachtwoord/providerdata; server-side validatie. |
profile-avatar.update.own | Eigen vooraf gedefinieerde profielfoto kiezen. | Student, Teacher, Guardian, Beheerder | Avatar bestaat en is actief. |
preferences.update.own | Eigen voorkeuren beheren. | Student, Teacher, Guardian, Beheerder | Sleutel/type/rolscope toegestaan. |
accessibility-settings.update.own | Eigen toegankelijkheidsinstellingen beheren. | Student, Teacher, Guardian, Beheerder | Featureflag en toegestane waarden. |
account.delete.own | Eigen accountverwijdering starten/bevestigen. | Student, Teacher, Guardian, Beheerder | Eigen account, bevestiging en lifecycleflow. |
account.logout.own | Eigen sessie beëindigen. | Student, Teacher, Guardian, Beheerder | Idempotent; geen domeinmutatie. |
public-roles.choose.own | Eerste publieke rolkeuze voor no-role gebruiker. | No-role / systeem | Alleen publieke actieve rollen; Student exclusief. |
public-roles.update.own | Latere eigen publieke roluitbreiding of wijziging. | Student, Teacher, Guardian | Feature 18; zelfde combinatieregels en cache-invalidatie. |
Relaties, uitnodigingen en berichten
| Permission | Betekenis | Primaire rolbundel(s) | Extra domein-/contextcontrole |
|---|---|---|---|
relationships.read.own | Relatieoverzicht bekijken. | Student, Teacher, Guardian, Beheerder | Alleen eigen relaties/pending uitnodigingen. |
relationships.invite-friend.own | Vriend uitnodigen. | Student | Friendship-regels, e-mailvalidatie, duplicaatcontrole. |
relationships.invite-guardian.own | Ouder/voogd uitnodigen. | Student | GuardianStudent-uitnodiging, targetrol Guardian. |
relationships.invite-student.assigned | Docent nodigt leerlingen uit. | Teacher | Teacher-student-uitnodiging vanuit docentcontext. |
relationships.invitation.accept.own | Eigen relatie-uitnodiging accepteren. | Student, Teacher, Guardian | Ontvanger, status pending, doelrol compatibel. |
relationships.invitation.reject.own | Eigen relatie-uitnodiging afwijzen. | Student, Teacher, Guardian | Ontvanger, status pending, bevestiging waar vereist. |
relationships.disconnect.own | Eigen relatie ontkoppelen of verzoek starten. | Student, Teacher, Guardian | Betrokken partij, relatietype en bevestiging. |
messages.read.own | Eigen mailbox/systeemberichten/threads bekijken. | Student, Teacher, Guardian, Beheerder | Recipient/participant en zichtbaarheid. |
messages.create.related | Privébericht opstellen aan toegestane relatie/deelnemer. | Student, Teacher, Guardian, Beheerder | Relatie-/deelnemerscontext en feature actief. |
messages.reply.own | Eigen privéthread beantwoorden. | Student, Teacher, Guardian, Beheerder | Participant, thread niet verwijderd, context nog geldig. |
messages.delete.own | Eigen privéthread uit eigen mailbox verwijderen. | Student, Teacher, Guardian, Beheerder | Alleen eigen participantzichtbaarheid. |
system-messages.read.own | Eigen systeembericht openen en leesstatus bijwerken. | Student, Teacher, Guardian, Beheerder | Alleen eigen recipient; vervolgactie autoriseert apart. |
Leerlingervaring, oefenruns, resultaten en delen
| Permission | Betekenis | Primaire rolbundel(s) | Extra domein-/contextcontrole |
|---|---|---|---|
practice-catalog.read.own | Beschikbare categorieën/oefeningen bekijken. | Student | Actieve niveaucontext en toegankelijke oefeningstatus. |
practice-run.create.own | Nieuwe oefenrun starten. | Student | Oefening/categorie/niveau actief en toegankelijk. |
practice-run.resume.own | Eigen niet-afgeronde run hervatten. | Student | Eigen run, niet afgerond, context nog geldig. |
practice-run.answer.own | Vraag in eigen actieve run beantwoorden. | Student | Eigen actieve run en vraagstatus. |
practice-run.complete.own | Eigen oefenrun afronden. | Student | Eigen run, workflowstatus geldig. |
practice-history.read.own | Eigen oefeninggeschiedenis bekijken. | Student | Eigen afgeronde runs of toegestane gedeelde context. |
practice-results.read.own | Eigen resultaatdetail bekijken. | Student | Eigen afgeronde run. |
practice-results.export.own | Eigen resultaat als PDF downloaden. | Student | Zelfde autorisatie als resultaatdetail; export hercontroleert. |
shared-practice.share.friend | Afgeronde oefening delen met vriend. | Student | Actieve vriendschap, deelbare run, feature actief. |
shared-practice.read.received | Ontvangen gedeelde oefeningen bekijken. | Student | Ontvangen record zichtbaar en niet verwijderd/geblokkeerd. |
shared-practice.start.received | Ontvangen gedeelde oefening starten. | Student | Ontvangen record geldig; oefening nog uitvoerbaar. |
shared-practice.delete.received | Ontvangen gedeelde oefening uit lijst verwijderen. | Student | Alleen eigen ontvangen record. |
Docentervaring en onderwijsstructuur
| Permission | Betekenis | Primaire rolbundel(s) | Extra domein-/contextcontrole |
|---|---|---|---|
teacher-frontpage-summary.read.own | Docentfrontpagesamenvattingen lezen. | Teacher | Samenvatting alleen binnen eigen docentcontext. |
teacher-levels.read.own | Eigen niveaus en open context bekijken. | Teacher | Eigenaar/collaborator/open zichtbaarheid. |
teacher-levels.create.own | Nieuw niveau aanmaken. | Teacher | Actor wordt eigenaar; module/categoryvalidatie volgt. |
teacher-levels.update.own | Eigen niveaukerngegevens wijzigen. | Teacher | Eigenaar en statusregels. |
teacher-levels.update.collaborating | Niveau bewerken als collaborator. | Teacher | Actieve collaborator met bewerkrecht; geen leerlingtoegang door collaboration. |
teacher-levels.transfer-ownership.own | Eigenaarschap overdragen. | Teacher | Huidige eigenaar; doel is actieve collaborator; reden verplicht. |
teacher-categories.read.own | Categorieën binnen bevoegd niveau bekijken. | Teacher | Niveaucontext bevoegd. |
teacher-categories.link.own | Bestaande centrale categorie aan niveau koppelen. | Teacher | Niveau-eigenaar/collaborator en centrale categorie geldig. |
teacher-categories.create.central-request | Nieuwe centrale categorie via docentflow aanvragen/aanmaken volgens ontwerpregel. | Teacher | Server-side centrale categorievalidatie. |
teacher-exercises.create.own | Oefening binnen bevoegd niveau aanmaken. | Teacher | Niveaucontext bevoegd; module actief. |
teacher-exercises.update.own | Eigen oefening configureren/wijzigen. | Teacher | Eigenaar of bevoegd niveaubeheer. |
teacher-exercises.update.collaborating | Oefening wijzigen als collaborator. | Teacher | Collaborator binnen niveau; geen leerlingresultaten. |
teacher-exercises.activate.own | Oefening activeren/in onderhoud zetten. | Teacher | Statusovergang, module/categorie/niveau geldig. |
teacher-exercises.test.own | Oefening testen binnen docentcontext. | Teacher | Testrun niet als leerlingresultaat opslaan. |
teacher-collaborators.manage.own | Collaborators op eigen niveau beheren. | Teacher | Eigenaar van niveau; audit. |
teacher-students.read.assigned | Eigen leerlingenoverzicht bekijken. | Teacher | Actieve docent-leerlingrelaties. |
teacher-students.invite.own | Leerlingen uitnodigen. | Teacher | Docentcontext, bulkregels, mail/systeemberichten. |
teacher-student-authorizations.read.assigned | Niveauautorisaties van eigen leerlingen bekijken. | Teacher | Actieve docent-leerlingrelatie. |
teacher-student-authorizations.manage.assigned | Niveauautorisaties beheren. | Teacher | Actieve docent-leerlingrelatie en bevoegd niveau. |
student-results.read.assigned | Resultaten van eigen leerlingen lezen. | Teacher | Alleen door docent geautoriseerde niveaus/runs. |
student-results.export.assigned | Resultaat-PDF binnen docentcontext downloaden. | Teacher | Zelfde scope als resultaatdetail. |
live-monitoring.read.assigned | Online status/livebeschikbaarheid eigen leerlingen lezen. | Teacher | Actieve relatie en niveauautorisatie. |
live-monitoring.start.assigned | Live meekijken bij eigen leerling starten. | Teacher | Actieve run, relatie, niveauautorisatie en livefeature. |
Ouder-/voogdervaring
| Permission | Betekenis | Primaire rolbundel(s) | Extra domein-/contextcontrole |
|---|---|---|---|
guardian-frontpage-summary.read.children | Ouder-/voogdfrontpagesamenvatting lezen. | Guardian | Alleen actieve GuardianStudent-relaties. |
guardian-children.read.children | Kinderenoverzicht bekijken. | Guardian | Alleen actief gekoppelde kinderen. |
guardian-child.read.children | Kindinformatie bekijken. | Guardian | Actieve GuardianStudent-relatie met geselecteerd kind. |
guardian-child.disconnect.children | Kind ontkoppelen als ouder/voogd. | Guardian | Actieve relatie, bevestiging, audit. |
student-results.read.children | Resultaten/geschiedenis van kind lezen. | Guardian | Actieve GuardianStudent-relatie; run hoort bij kind. |
student-results.export.children | Resultaat-PDF van kind downloaden. | Guardian | Zelfde scope als resultaatdetail. |
live-monitoring.read.children | Online status/livebeschikbaarheid kind lezen. | Guardian | Actieve relatie en livefeature. |
live-monitoring.start.children | Live meekijken bij kind starten. | Guardian | Actieve relatie, actieve run, read-only. |
Beheerderervaring, support en systeeminstellingen
Deze permissies horen bij de bestaande applicatiebeheerderrol. Zij geven geen recht op het beheren van permissies of rol-permissiekoppelingen zelf.
| Permission | Betekenis | Primaire rolbundel(s) | Extra domein-/contextcontrole |
|---|---|---|---|
administrator-frontpage-summary.read.all | Beheersamenvattingen lezen. | Beheerder | Alleen afgeleide beheerreadmodels. |
administrator-accounts.read.all | Accountoverzicht en accountdetails lezen. | Beheerder | Geen credentials/providerdata. |
administrator-accounts.update.all | Ondersteunde accountvelden/status wijzigen. | Beheerder | Expliciete beheeractie en audit. |
administrator-accounts.deactivate.all | Account tijdelijk uitschakelen. | Beheerder | Reden/audit; geen hard delete. |
administrator-accounts.reactivate.all | Account heractiveren. | Beheerder | Server-side hercontrole rollen/permissies/context. |
administrator-accounts.anonymize.all | Account anonimiseren als beheerder. | Beheerder | Privacyflow, bevestiging, audit. |
administrator-user-settings.update.all | Ondersteunde gebruikersinstelling corrigeren. | Beheerder | Geen auth/providerdata. |
administrator-account-history.read.all | Accountgeschiedenis/lifecyclelog bekijken. | Beheerder | Beheercontext. |
administrator-categories.read.all | Centrale categorieën lezen. | Beheerder | Beheercontext. |
administrator-categories.update.all | Categoriegegevens/status wijzigen. | Beheerder | Status-/migratieregels en audit. |
administrator-categories.migrate.all | Categorie migreren. | Beheerder | Bron/doel/impactcontrole en reden. |
administrator-modules.read.all | Moduleoverzicht lezen. | Beheerder | Beheercontext. |
administrator-modules.update.all | Modulegegevens/status/testzichtbaarheid wijzigen. | Beheerder | Modulevalidatie en audit. |
administrator-modules.migrate.all | Modulemigratie uitvoeren. | Beheerder | Impactcontrole, scope en reden. |
administrator-teacher-support.read.all | Docentstructuur inspecteren in supportcontext. | Beheerder | Expliciete docentselectie; geen vrije bypass. |
administrator-teacher-support.update.all | Docentondersteuningscorrecties uitvoeren. | Beheerder | Supportflow, domeincommand, audit. |
administrator-frontpage-content.update.all | Frontpagecontent beheren. | Beheerder | Bestaand contentblok en layoutregels. |
administrator-links.update.all | Handige links, footer en vaste pagina's beheren. | Beheerder | URL/contentvalidatie, audit. |
administrator-popups.update.all | Popupdefinities beheren. | Beheerder | Popupkey, read-only technische velden, audit. |
administrator-system-message-templates.update.all | Systeemberichttemplates beheren. | Beheerder | Placeholdervalidatie en historie. |
administrator-featuretoggles.update.all | Featuretoggles wijzigen. | Beheerder | Reden/audit en cacheverversing. |
administrator-site-notifications.update.all | Systeemnotificaties beheren. | Beheerder | Doelgroep, tijdvenster, displayregel. |
administrator-system-settings.update.all | Systeeminstellingen wijzigen. | Beheerder | Type/invoervorm/audit en configcache. |
administrator-auditlog.read.all | Beheerlog raadplegen. | Beheerder | Geen wijziging auditdata. |
administrator-mail-templates.update.all | Mailtemplates beheren. | Beheerder | Placeholdervalidatie; WYSIWYG-placeholder story 090. |
tickets.read.all | Beheerdersoverzicht meldingen lezen. | Beheerder | Beheercontext. |
tickets.assign.administrator | Behandelaar koppelen/ontkoppelen. | Beheerder | Reden en behandelcontext. |
tickets.comment.external | Extern ticketbericht plaatsen als beheerder. | Beheerder | Actieve behandelcontext. |
tickets.comment.internal | Intern ticketbericht plaatsen. | Beheerder | Interne zichtbaarheid. |
tickets.resolve.all | Ticket oplossen/sluiten als beheerder. | Beheerder | Niet rechtstreeks vanuit New zonder behandelcontext. |
tickets.reopen.all | Ticket heropenen als beheerder. | Beheerder | Reden en statuscontrole. |
tickets.forward.teacher | Melding doorzetten naar docent. | Beheerder | Geldige docentselectie en behandelcontext. |
Support voor eigen meldingen
| Permission | Betekenis | Primaire rolbundel(s) | Extra domein-/contextcontrole |
|---|---|---|---|
tickets.create.own | Eigen melding indienen. | Student, Teacher, Guardian, Beheerder | Meldingenfeature actief. |
tickets.read.own | Eigen meldingen en details bekijken. | Student, Teacher, Guardian, Beheerder | Alleen eigen tickets; interne beheerinfo verborgen. |
tickets.comment.own | Extern reageren op eigen melding. | Student, Teacher, Guardian, Beheerder | Ticket open/niet functioneel gesloten. |
tickets.close.own | Eigen melding sluiten. | Student, Teacher, Guardian, Beheerder | Eigen ticket, reden verplicht. |
tickets.resolve.accept.own | Oplossing accepteren. | Student, Teacher, Guardian, Beheerder | Eigen opgelost ticket, niet eerder geaccepteerd. |
tickets.reopen.own | Eigen melding binnen termijn heropenen. | Student, Teacher, Guardian, Beheerder | Termijn en toelichting. |
Permissionbeheer en cachebeheer
Deze permissions zijn technisch noodzakelijk voor Feature 11-5 en voor toekomstig beheer, maar de beheerinterface voor role-permission management is buiten scope.
| Permission | Betekenis | Primaire rolbundel(s) | Extra domein-/contextcontrole |
|---|---|---|---|
authorization-permissions.read.system | Applicatie/startup/test mag permissiedefinities lezen. | Systeem | Alleen technische services; geen UI. |
authorization-permissions.seed.system | Migratie/seed mag permissies en RolePermissions idempotent synchroniseren. | Systeem | Alleen gecontroleerde seed/migratieflow. |
authorization-cache.invalidate.own | Eigen permissioncache legen na publieke rolwijziging. | Student, Teacher, Guardian | Alleen huidige gebruiker. |
authorization-cache.invalidate.user | Permissioncache van één gebruiker legen. | Systeem / toekomstig Admin | Servicecontract; gebruikt bij UserRoles-mutatie. |
authorization-cache.invalidate.role | Permissioncache van alle gebruikers in een rol legen. | Systeem / toekomstig Admin | Servicecontract; gebruikt bij RolePermissions-mutatie. |
authorization-roles.read.all | Rollen/permissiekoppelingen raadplegen. | Toekomstig Admin | Placeholder 17-091; niet voor bestaande Beheerder. |
authorization-roles.update.all | Rollen beheren. | Toekomstig Admin | Placeholder 17-091. |
authorization-role-permissions.update.all | Permissies aan rollen koppelen/intrekken. | Toekomstig Admin | Placeholder 17-091. |
authorization-user-roles.update.all | Rollen aan gebruikers toekennen/intrekken. | Toekomstig Admin | Placeholder 17-091; bestaande accountbeheerflow wordt herijkt. |
Seedbundels initieel
De initiële seed koppelt permissions aan rollen als bundels. De exacte seed mag in code/migraties worden gesplitst per feature, maar de functionele intentie is:
| Rolbundel | Minimale permissionfamilies |
|---|---|
| Student | frontpage.view.student, menu.view.practice, profile-*, practice-*, shared-practice-*, eigen relationships-*, eigen messages-*, eigen tickets-*. |
| Teacher | frontpage.view.teacher, menu.view.teacher-*, profile-*, docentonderwijsstructuur, assigned student/result/live permissies, eigen relationships-*, eigen messages-*, eigen tickets-*. |
| Guardian | frontpage.view.guardian, menu.view.guardian-*, profile-*, children/result/live permissies, eigen relationships-*, eigen messages-*, eigen tickets-*. |
| Beheerder | frontpage.view.administrator, menu.view.administrator-*, applicatiebeheerder- en supportpermissies, eigen profiel/berichten/tickets. Geen authorization-role-permissions.update.all. |
| TestDocent | Alleen testmodule-/testzichtbaarheidspermissies waar een module of feature dit expliciet vereist. Geen algemene docentpermissies tenzij apart gekoppeld. |
| Toekomstig Admin | Alleen authorization-managementpermissies na uitwerking in Feature 17 story 091. |
Validatie bij implementatie
Feature 11-5 moet afdwingen dat:
- iedere
RequiresPermission/RequirePermission/PermissionView-waarde inPermissions.Codebestaat; - iedere
Permissions.Codeuniek is; - iedere actieve
RolePermissions-combinatie uniek is; - seeddata idempotent is;
- permissies met gewijzigde omschrijving niet per ongeluk als nieuwe permission ontstaan;
- tests falen wanneer een endpoint, page of component een onbekende permission declareert;
- cache invalidatie plaatsvindt bij
UserRoles-mutaties en bij latereRolePermissions-mutaties.