Skip to main content

UC-BEH-SITE-003 — Toegang tot Site Instellingen controleren

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-SITE-003
NaamToegang tot Site Instellingen controleren
DomeinBeheerder / Site Instellingen-hub
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, autorisatiecomponent, routering
RolcontextActieve beheerdercontext
Betrokken schermenSite Instellingen-hub, beheerdernavigatie, onderliggende beheerpagina’s
Gerelateerde usecasesUC-BEH-FP-002, UC-BEH-SITE-001, UC-BEH-SITE-002, UC-GEN-ACC-002
Primaire entiteitenUsers, Roles, UserRoles
Secundaire entiteiten / eventsSiteSettings, ContentBlocks, PopupDefinitions, SystemMessageTemplates, SiteFeatureToggles, AdminAuditLog
Gerelateerde popupsNiet van toepassing
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

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

OnderdeelAfbakening
UC-BEH-FP-002Levert algemene beheercontext; deze usecase past routecontrole toe voor Site Instellingen.
UC-BEH-SITE-001Gebruikt deze controle bij openen van de hub.
UC-BEH-SITE-002Gebruikt deze controle bij openen van doelroutes.
AccountbeheerWijzigt beheerderrollen; deze usecase leest ze alleen.
Onderliggende beheerpagina’sVoeren na routetoegang eigen object- en mutatiecontrole uit.

4. Pre-condities

IDVoorwaarde
PRE-001Er is een routeverzoek naar Site Instellingen of een onderliggende Site Instellingen-route.
PRE-002De sessie bevat een interne accountverwijzing of kan veilig worden gevalideerd.
PRE-003Rollen en accountstatus kunnen server-side worden gelezen.
PRE-004De route is bekend of kan veilig als onbekend worden afgehandeld.
PRE-005De frontend vertrouwt niet op menu- of tegelzichtbaarheid als beveiliging.
PRE-006De applicatie heeft een veilige afhandeling voor onbevoegde toegang.

5. Post-condities

IDResultaat
POST-001Bij geldige beheerdercontext wordt de gevraagde Site Instellingen-route toegestaan.
POST-002Bij ontbrekende of ongeldige beheerdercontext wordt geen Site Instellingen-data getoond.
POST-003De gebruiker krijgt een veilige redirect of toegang-geweigerdafhandeling.
POST-004Er zijn geen site-instellingen, contentrecords of templates gewijzigd.
POST-005Onderliggende pagina’s kunnen daarna hun eigen autorisatie en validatie uitvoeren.
POST-006Directe 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

StapActorScherm / componentActieSysteemresponsData / regel
1GebruikerBrowserVraagt Site Instellingen of onderliggende route op.De frontend of server ontvangt het routeverzoek.Directe URL of navigatie.
2BackendSessieserviceControleert of er een geldige applicatiesessie is.Ontbrekende of verlopen sessie wordt veilig afgehandeld.Geen beheerdata laden.
3BackendAccountserviceLaadt het interne account.Accountstatus wordt gevalideerd.Users.IsActive.
4BackendRolserviceLaadt actieve rollen.De aanwezigheid van actieve Beheerderrol wordt gecontroleerd.Roles, UserRoles.
5BackendRolvalidatieControleert conflicterende leerlingrol.Ongeldige rolcombinatie blokkeert beheercontext.Leerling niet combineren.
6BackendRouteautorisatieControleert of de route bij Site Instellingen hoort en toegestaan is.Bekende toegestane route wordt doorgelaten.Hub of onderliggende route.
7BackendDoelrouteGeeft toestemming voor readmodelopbouw.De hub of doelpagina mag eigen readmodel laden.Geen mutatie.
8FrontendPaginaToont hub of onderliggende beheerpagina.Alle zichtbare data komt uit geautoriseerde backendresponse.Geen client-autorisatie.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Sessie ontbreekt of is verlopen.Het systeem toont geen beheerdata en leidt naar login of veilige sessieafhandeling.Bestaande sessieafhandeling.Geen.
ALT-0023Intern account bestaat niet.Het systeem volgt de generieke accountafhandeling.Bestaande accountflow.Geen.
ALT-0033Account is inactief.Toegang tot Site Instellingen wordt geblokkeerd.Veilige toegang geweigerd.Geen.
ALT-0044Beheerderrol ontbreekt.De route wordt geweigerd, ook wanneer de frontend een menu-item of tegel toont door oude state.Toegang geweigerd.Geen.
ALT-0055Leerlingrol is conflicterend aanwezig.Beheercontext wordt niet afgegeven en accountcorrectie is vereist via bevoegd beheer.Veilige blokkade.Geen automatische wijziging.
ALT-0066Route bestaat niet binnen Site Instellingen.Het systeem toont een veilige niet-gevonden of toegang-geweigerdafhandeling zonder beheerdata.404/403-stijl.Geen.
ALT-0076Route bestaat maar beheergebied is uitgeschakeld.De route wordt veilig geblokkeerd of toont een beheerbare niet-beschikbaarweergave.Inline melding.Geen.
ALT-0087Onderliggende pagina vereist extra objectautorisatie.De doelpagina blokkeert zelf wanneer objectcontext ontbreekt of ongeldig is.Afhankelijk van doelpagina.Geen vanuit deze usecase.

9. Business rules

IDRegel
BR-UC-BEH-SITE-003-001Toegang tot Site Instellingen wordt altijd server-side gecontroleerd.
BR-UC-BEH-SITE-003-002Frontendmenu’s, tegels en verborgen knoppen gelden nooit als autorisatiebron.
BR-UC-BEH-SITE-003-003Alleen actieve accounts met actieve beheerderrol mogen Site Instellingen openen.
BR-UC-BEH-SITE-003-004Docent- of ouder-/voogdrollen geven zonder beheerderrol geen toegang tot Site Instellingen.
BR-UC-BEH-SITE-003-005Directe URL’s en navigatie via hubtegels doorlopen dezelfde autorisatiecontrole.
BR-UC-BEH-SITE-003-006De toegangcontrole voert geen inhoudelijke beheerwijziging uit.
BR-UC-BEH-SITE-003-007Een onderliggende Site Instellingen-pagina voert eigen object- en mutatieautorisatie uit.
BR-UC-BEH-SITE-003-008Onbevoegde toegang mag geen site-instellingen, templates, technische sleutels of beheerdata tonen.
BR-UC-BEH-SITE-003-009Een ingetrokken beheerderrol moet bij de eerstvolgende server-side controle effect hebben.

10. Datavalidatie

Veld / objectValidatie
SessieMoet geldig en gekoppeld zijn aan een intern account.
AccountUsers.IsActive moet actief zijn.
BeheerderrolActieve UserRole met rol Beheerder vereist.
RolcombinatieLeerlingrol naast Beheerder is ongeldig.
RouteMoet een bekende Site Instellingen-route zijn.
Directe URLMoet dezelfde autorisatiecontrole doorlopen als menunavigatie.
FrontendstateMag geen toegang verruimen.
ResponseMag bij blokkade geen beheerdata of technische sleutels bevatten.

10.1 Autorisatie en server-side controles

ControleUitwerking
AccountstatusControleer dat het interne account actief is voordat beheerdata wordt geladen.
RolstatusControleer dat de beheerderrol actief is op het moment van het verzoek.
ClientstateGebruik browserstate uitsluitend als UI-hint en nooit als autorisatiebron.
Directe URLVoer dezelfde controle uit bij directe routes als bij navigatie via menu of tegel.
Veilige responseGeef bij blokkade geen beheerdata, technische sleutels of querydetails terug.
RolintrekkingHercontroleer rollen op elk routeverzoek zodat ingetrokken rechten direct effect hebben.
Directe routeLaat directe URL’s nooit om de hubcontrole heen werken.
ObjectscopeGeef alleen routetoegang; doelpagina bepaalt verdere objectscope.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
1-8DatabaseNiet van toepassingToegangcontrole leest account, rollen en routeconfiguratie.
1-8AuditNiet van toepassingEen geweigerde toegang kan beveiligingslogging gebruiken, maar is geen beheerwijziging.
1-8EventNiet van toepassingEr wordt geen domeinevent gepubliceerd.

12. Geen datamutaties

EntiteitReden
SiteSettingsToegangcontrole wijzigt geen instelling.
ContentBlocks en StaticPageBlocksGeen contentmutatie.
PopupDefinitions en SystemMessageTemplatesGeen templatewijziging.
SiteFeatureToggles en SiteNotificationsGeen feature- of notificatiewijziging.
Users, Roles en UserRolesRollen worden gelezen maar niet aangepast.
AdminAuditLogGeen 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.

PopupKeyMomentDoel
Niet van toepassingGeen bevestigings- of invoerpopup in deze usecase.De flow bevat alleen route-, hub- of autorisatiegedrag.

18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification

DoeldocumentAfleiding
Functioneel OntwerpBeschrijft dat Site Instellingen uitsluitend voor beheerders beschikbaar is en dat menu- of tegelzichtbaarheid geen beveiliging vormt.
Technisch OntwerpTechnisch 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 SpecificationNeem 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-afleidingDektUsecasecontext
REQ-UC-BEH-SITE-003-001SRS-AUTH-001
SRS-ADM-001
AC-AUTH-001
AC-ADM-001
Elk verzoek naar Site Instellingen server-side autoriseren
REQ-UC-BEH-SITE-003-002SRS-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-003SRS-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-004SRS-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-005SRS-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-006SRS-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-007SRS-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-008SRS-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