UC-BEH-SITE-003 — Toegang tot Site Instellingen controleren
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-SITE-003 |
| Naam | Toegang tot Site Instellingen controleren |
| Domein | Beheerder / Site Instellingen-hub |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Frontend, backend, autorisatiecomponent, routering |
| Rolcontext | Actieve beheerdercontext |
| Betrokken schermen | Site Instellingen-hub, beheerdernavigatie, onderliggende beheerpagina’s |
| Gerelateerde usecases | UC-BEH-FP-002, UC-BEH-SITE-001, UC-BEH-SITE-002, UC-GEN-ACC-002 |
| Primaire entiteiten | Users, Roles, UserRoles |
| Secundaire entiteiten / events | SiteSettings, ContentBlocks, PopupDefinitions, SystemMessageTemplates, SiteFeatureToggles, AdminAuditLog |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft de server-side toegangcontrole voor de Site Instellingen-hub en de onderliggende routes binnen Site Instellingen. Omdat Site Instellingen beheerdomeinen bevat die sitebreed effect hebben, mag toegang nooit uitsluitend door zichtbaarheid van menu-items of tegels worden afgedwongen.
De toegangcontrole bevestigt dat de gebruiker een actief intern account en een actieve beheerderrol heeft. Bij combinatierollen is de beheerdercontext leidend voor deze route, maar de aanwezigheid van Docent of Ouder/voogd geeft op zichzelf geen toegang tot Site Instellingen.
De usecase voert geen inhoudelijke instellingwijziging uit. Zij bepaalt alleen of de hub of doelroute mag worden geladen. Onderliggende beheerpagina’s voeren daarna aanvullende controles uit voor hun specifieke objecten, velden en mutaties.
Uitgangspunten
- Server-side autorisatie is leidend; frontend-zichtbaarheid is nooit voldoende.
- Beheerder is een niet-publieke rol en wordt niet door gebruikers zelf gekozen.
- Een directe URL naar Site Instellingen moet exact dezelfde controle doorlopen als navigatie via het menu.
- Contextcontrole en mutatiecontrole zijn gescheiden verantwoordelijkheden.
3. Scope
Deze usecase beschrijft:
- Controleren van toegang tot de Site Instellingen-hub.
- Controleren van toegang tot onderliggende Site Instellingen-routes.
- Afhandelen van verlopen sessie, inactief account, ontbrekende beheerderrol en conflicterende rolcombinatie.
- Beschrijven dat menu- of tegelzichtbaarheid geen beveiliging vervangt.
- Bepalen dat de toegangcontrole geen beheerrecords wijzigt.
Deze usecase beschrijft niet:
- Toekennen of intrekken van beheerderrol.
- Validatie van specifieke velden op onderliggende beheerpagina’s.
- Bevestigingspopups voor beheerwijzigingen.
- Auditregistratie van inhoudelijke wijzigingen.
- Account lifecycle zoals anonymiseren of uitschakelen.
3.1 Afbakening met aangrenzende usecases
| Onderdeel | Afbakening |
|---|---|
| UC-BEH-FP-002 | Levert algemene beheercontext; deze usecase past routecontrole toe voor Site Instellingen. |
| UC-BEH-SITE-001 | Gebruikt deze controle bij openen van de hub. |
| UC-BEH-SITE-002 | Gebruikt deze controle bij openen van doelroutes. |
| Accountbeheer | Wijzigt beheerderrollen; deze usecase leest ze alleen. |
| Onderliggende beheerpagina’s | Voeren na routetoegang eigen object- en mutatiecontrole uit. |
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | Er is een routeverzoek naar Site Instellingen of een onderliggende Site Instellingen-route. |
| PRE-002 | De sessie bevat een interne accountverwijzing of kan veilig worden gevalideerd. |
| PRE-003 | Rollen en accountstatus kunnen server-side worden gelezen. |
| PRE-004 | De route is bekend of kan veilig als onbekend worden afgehandeld. |
| PRE-005 | De frontend vertrouwt niet op menu- of tegelzichtbaarheid als beveiliging. |
| PRE-006 | De applicatie heeft een veilige afhandeling voor onbevoegde toegang. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | Bij geldige beheerdercontext wordt de gevraagde Site Instellingen-route toegestaan. |
| POST-002 | Bij ontbrekende of ongeldige beheerdercontext wordt geen Site Instellingen-data getoond. |
| POST-003 | De gebruiker krijgt een veilige redirect of toegang-geweigerdafhandeling. |
| POST-004 | Er zijn geen site-instellingen, contentrecords of templates gewijzigd. |
| POST-005 | Onderliggende pagina’s kunnen daarna hun eigen autorisatie en validatie uitvoeren. |
| POST-006 | Directe URL’s en navigatie via menu of tegel zijn gelijkwaardig beveiligd. |
6. Trigger
De usecase start bij elk server-side verzoek naar de Site Instellingen-hub of een onderliggende route binnen Site Instellingen.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Gebruiker | Browser | Vraagt Site Instellingen of onderliggende route op. | De frontend of server ontvangt het routeverzoek. | Directe URL of navigatie. |
| 2 | Backend | Sessieservice | Controleert of er een geldige applicatiesessie is. | Ontbrekende of verlopen sessie wordt veilig afgehandeld. | Geen beheerdata laden. |
| 3 | Backend | Accountservice | Laadt het interne account. | Accountstatus wordt gevalideerd. | Users.IsActive. |
| 4 | Backend | Rolservice | Laadt actieve rollen. | De aanwezigheid van actieve Beheerderrol wordt gecontroleerd. | Roles, UserRoles. |
| 5 | Backend | Rolvalidatie | Controleert conflicterende leerlingrol. | Ongeldige rolcombinatie blokkeert beheercontext. | Leerling niet combineren. |
| 6 | Backend | Routeautorisatie | Controleert of de route bij Site Instellingen hoort en toegestaan is. | Bekende toegestane route wordt doorgelaten. | Hub of onderliggende route. |
| 7 | Backend | Doelroute | Geeft toestemming voor readmodelopbouw. | De hub of doelpagina mag eigen readmodel laden. | Geen mutatie. |
| 8 | Frontend | Pagina | Toont hub of onderliggende beheerpagina. | Alle zichtbare data komt uit geautoriseerde backendresponse. | Geen client-autorisatie. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Sessie ontbreekt of is verlopen. | Het systeem toont geen beheerdata en leidt naar login of veilige sessieafhandeling. | Bestaande sessieafhandeling. | Geen. |
| ALT-002 | 3 | Intern account bestaat niet. | Het systeem volgt de generieke accountafhandeling. | Bestaande accountflow. | Geen. |
| ALT-003 | 3 | Account is inactief. | Toegang tot Site Instellingen wordt geblokkeerd. | Veilige toegang geweigerd. | Geen. |
| ALT-004 | 4 | Beheerderrol ontbreekt. | De route wordt geweigerd, ook wanneer de frontend een menu-item of tegel toont door oude state. | Toegang geweigerd. | Geen. |
| ALT-005 | 5 | Leerlingrol is conflicterend aanwezig. | Beheercontext wordt niet afgegeven en accountcorrectie is vereist via bevoegd beheer. | Veilige blokkade. | Geen automatische wijziging. |
| ALT-006 | 6 | Route bestaat niet binnen Site Instellingen. | Het systeem toont een veilige niet-gevonden of toegang-geweigerdafhandeling zonder beheerdata. | 404/403-stijl. | Geen. |
| ALT-007 | 6 | Route bestaat maar beheergebied is uitgeschakeld. | De route wordt veilig geblokkeerd of toont een beheerbare niet-beschikbaarweergave. | Inline melding. | Geen. |
| ALT-008 | 7 | Onderliggende pagina vereist extra objectautorisatie. | De doelpagina blokkeert zelf wanneer objectcontext ontbreekt of ongeldig is. | Afhankelijk van doelpagina. | Geen vanuit deze usecase. |
9. Business rules
| ID | Regel |
|---|---|
| BR-UC-BEH-SITE-003-001 | Toegang tot Site Instellingen wordt altijd server-side gecontroleerd. |
| BR-UC-BEH-SITE-003-002 | Frontendmenu’s, tegels en verborgen knoppen gelden nooit als autorisatiebron. |
| BR-UC-BEH-SITE-003-003 | Alleen actieve accounts met actieve beheerderrol mogen Site Instellingen openen. |
| BR-UC-BEH-SITE-003-004 | Docent- of ouder-/voogdrollen geven zonder beheerderrol geen toegang tot Site Instellingen. |
| BR-UC-BEH-SITE-003-005 | Directe URL’s en navigatie via hubtegels doorlopen dezelfde autorisatiecontrole. |
| BR-UC-BEH-SITE-003-006 | De toegangcontrole voert geen inhoudelijke beheerwijziging uit. |
| BR-UC-BEH-SITE-003-007 | Een onderliggende Site Instellingen-pagina voert eigen object- en mutatieautorisatie uit. |
| BR-UC-BEH-SITE-003-008 | Onbevoegde toegang mag geen site-instellingen, templates, technische sleutels of beheerdata tonen. |
| BR-UC-BEH-SITE-003-009 | Een ingetrokken beheerderrol moet bij de eerstvolgende server-side controle effect hebben. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| Sessie | Moet geldig en gekoppeld zijn aan een intern account. |
| Account | Users.IsActive moet actief zijn. |
| Beheerderrol | Actieve UserRole met rol Beheerder vereist. |
| Rolcombinatie | Leerlingrol naast Beheerder is ongeldig. |
| Route | Moet een bekende Site Instellingen-route zijn. |
| Directe URL | Moet dezelfde autorisatiecontrole doorlopen als menunavigatie. |
| Frontendstate | Mag geen toegang verruimen. |
| Response | Mag bij blokkade geen beheerdata of technische sleutels bevatten. |
10.1 Autorisatie en server-side controles
| Controle | Uitwerking |
|---|---|
| Accountstatus | Controleer dat het interne account actief is voordat beheerdata wordt geladen. |
| Rolstatus | Controleer dat de beheerderrol actief is op het moment van het verzoek. |
| Clientstate | Gebruik browserstate uitsluitend als UI-hint en nooit als autorisatiebron. |
| Directe URL | Voer dezelfde controle uit bij directe routes als bij navigatie via menu of tegel. |
| Veilige response | Geef bij blokkade geen beheerdata, technische sleutels of querydetails terug. |
| Rolintrekking | Hercontroleer rollen op elk routeverzoek zodat ingetrokken rechten direct effect hebben. |
| Directe route | Laat directe URL’s nooit om de hubcontrole heen werken. |
| Objectscope | Geef alleen routetoegang; doelpagina bepaalt verdere objectscope. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1-8 | Database | Niet van toepassing | Toegangcontrole leest account, rollen en routeconfiguratie. |
| 1-8 | Audit | Niet van toepassing | Een geweigerde toegang kan beveiligingslogging gebruiken, maar is geen beheerwijziging. |
| 1-8 | Event | Niet van toepassing | Er wordt geen domeinevent gepubliceerd. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| SiteSettings | Toegangcontrole wijzigt geen instelling. |
| ContentBlocks en StaticPageBlocks | Geen contentmutatie. |
| PopupDefinitions en SystemMessageTemplates | Geen templatewijziging. |
| SiteFeatureToggles en SiteNotifications | Geen feature- of notificatiewijziging. |
| Users, Roles en UserRoles | Rollen worden gelezen maar niet aangepast. |
| AdminAuditLog | Geen inhoudelijke beheerwijziging door alleen controle. |
13. State diagram
Niet van toepassing. Deze usecase controleert sessie, accountstatus, rolcontext en routeautorisatie, maar wijzigt geen persistent statusobject. De toegestane en geblokkeerde uitkomsten zijn autorisatiebeslissingen binnen hetzelfde routeverzoek.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
Toegang toestaan
Toegang blokkeren
17. Popupverwijzingen
Deze usecase gebruikt geen popupregister-popup. Eventuele fout-, blokkade- of niet-beschikbaarmeldingen worden als inline melding, veilige redirect of statusweergave afgehandeld.
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Geen bevestigings- of invoerpopup in deze usecase. | De flow bevat alleen route-, hub- of autorisatiegedrag. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft dat Site Instellingen uitsluitend voor beheerders beschikbaar is en dat menu- of tegelzichtbaarheid geen beveiliging vormt. |
| Technisch Ontwerp | Technisch Ontwerp: domeinmodel en admin-eigenaarschap, security en configuratie, beheer en operatie en frontendcompositie beschrijven de technische uitwerking. Leg middleware of routeguard vast voor hub en onderliggende routes, met accountstatus, actieve beheerderrol, rolconflictcontrole en veilige response bij blokkade. |
| Software Requirements Specification | Neem eisen op voor server-side toegangscontrole, gelijke bescherming van directe URL’s en navigatie, blokkade zonder beheerdata en scheiding tussen toegangcontrole en mutatiecontrole. |
19. SRS-trace
Deze usecase bevat geen normatieve requirementtekst. De centrale eis en acceptatiecriteria staan in de SRS; onderstaande tabel koppelt de usecase-afleiding alleen aan centrale SRS-*- en AC-*-items.
| Usecase-afleiding | Dekt | Usecasecontext |
|---|---|---|
REQ-UC-BEH-SITE-003-001 | SRS-AUTH-001 SRS-ADM-001 AC-AUTH-001 AC-ADM-001 | Elk verzoek naar Site Instellingen server-side autoriseren |
REQ-UC-BEH-SITE-003-002 | SRS-AUTH-001 SRS-ACC-002 SRS-ADM-002 SRS-ADM-001 AC-AUTH-001 AC-ACC-002 AC-ADM-002 AC-ADM-001 | Toegang tot Site Instellingen beperken tot actieve accounts met actieve beheerderrol |
REQ-UC-BEH-SITE-003-003 | SRS-AUTH-001 SRS-ADM-001 AC-AUTH-001 AC-ADM-001 | Frontend-zichtbaarheid van menu’s of tegels niet als autorisatiebron gebruiken |
REQ-UC-BEH-SITE-003-004 | SRS-ADM-001 SRS-CNT-004 SRS-NFR-SEC-001 AC-ADM-001 AC-CNT-004 AC-NFR-SEC-001 | Directe URL’s naar Site Instellingen-routes gelijkwaardig beveiligen aan navigatie via de hub |
REQ-UC-BEH-SITE-003-005 | SRS-AUTH-001 SRS-ADM-001 AC-AUTH-001 AC-ADM-001 | Onbevoegde gebruikers geen beheerdata, technische sleutels of instellingen tonen |
REQ-UC-BEH-SITE-003-006 | SRS-AUTH-001 SRS-LRN-009 SRS-ADM-002 SRS-ADM-001 AC-AUTH-001 AC-LRN-009 AC-ADM-002 AC-ADM-001 | Conflicterende rolcombinaties met Leerling blokkeren voor beheercontext |
REQ-UC-BEH-SITE-003-007 | SRS-AUTH-001 SRS-RDM-001 SRS-RDM-005 SRS-ADM-001 AC-AUTH-001 AC-RDM-001 AC-RDM-005 AC-ADM-001 | Onderliggende Site Instellingen-pagina’s eigen autorisatie en validatie laten uitvoeren |
REQ-UC-BEH-SITE-003-008 | SRS-AUTH-001 SRS-ADM-002 SRS-ADM-001 SRS-CNT-001 SRS-POP-004 AC-AUTH-001 AC-ADM-002 AC-ADM-001 AC-CNT-001 AC-POP-004 | Het uitvoeren van toegangcontrole mag geen site-instellingen, templates, content of rollen wijzigen |