Skip to main content

UC-BEH-FP-002 — Beheercontext bepalen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-FP-002
NaamBeheercontext bepalen
DomeinBeheerder / Frontpage en context
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, database, autorisatiecomponent, readmodelqueries
RolcontextActieve beheerdercontext; bij combinatierollen samengesteld volgens prioriteit Beheerder, Docent, Ouder/voogd
Betrokken schermenBeheerder-frontpage, gezamenlijke frontpage bij combinatierollen, hoofdmenu
Gerelateerde usecasesUC-BEH-FP-001, UC-BEH-FP-005, UC-GEN-ACC-002, UC-GEN-ACC-003, UC-GEN-PROF-003
Primaire entiteitenUsers, Roles, UserRoles, UserSettings
Secundaire entiteiten / eventsFrontendContext, ContentBlocks, SiteNotifications
Gerelateerde popupsNiet van toepassing
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe OefenHub bepaalt of de ingelogde gebruiker in beheerdercontext mag werken en welke frontendcontext leidend is bij combinatierollen. De contextbepaling vormt de toegangspoort voor de beheerder-frontpage en alle beheerdernavigatie.

Een gebruiker kan Beheerder combineren met Docent en/of Ouder/voogd, maar nooit met Leerling. Wanneer Beheerder aanwezig en actief is, krijgt de beheerdercontext bij frontpageweergave de hoogste prioriteit. De applicatie toont geen dubbele navigatie-items en laat clientstate of routeparameters nooit de server-side context overschrijven.

De usecase beschrijft uitsluitend contextbepaling en routebesluitvorming. Het uitvoeren van beheeracties, het wijzigen van rollen en het samenstellen van gecombineerde frontpageblokken zijn afzonderlijke usecases.

Uitgangspunten

  • De externe identity provider levert authenticatie; OefenHub bepaalt de interne applicatiecontext.
  • Users.ExternalId koppelt de identity-providerlogin aan het interne account.
  • Users.IsActive blokkeert reguliere toegang wanneer het account inactief is.
  • De rol Leerling kan niet gecombineerd worden met Beheerder, Docent of Ouder/voogd.

3. Scope

Deze usecase beschrijft:

  • Bepalen of een ingelogde gebruiker beheerdercontext heeft.
  • Toepassen van de prioriteitsvolgorde Beheerder, Docent, Ouder/voogd.
  • Blokkeren van beheerdercontext bij inactief account, ontbrekende rol of conflicterende leerlingrol.
  • Bepalen welke navigatie- en frontpagecontext leidend is.
  • Voorkomen dat browserstate, oude route of querystring een rolcontext afdwingt.

Deze usecase beschrijft niet:

  • Toekennen of intrekken van rollen; dit hoort bij Accountbeheer.
  • Samenstellen van alle gecombineerde frontpageblokken; dit hoort bij UC-BEH-FP-005.
  • Accountprovisioning; dit blijft bij generiek/account.
  • Wijzigen van profiel- of niveaucontext.
  • Autorisatie per afzonderlijke beheeractie op detailpagina’s.

3.1 Afbakening met aangrenzende usecases

OnderdeelAfbakening
UC-GEN-ACC-002Verwerkt login en sessie; deze usecase bepaalt daarna de beheergerichte applicatiecontext.
UC-BEH-FP-001Gebruikt het contextbesluit om de beheerder-frontpage te tonen.
UC-BEH-FP-005Gebruikt de volledige rolset voor runtime-samenstelling bij combinatierollen.
AccountbeheerKent of trekt rollen toe; deze usecase leest rollen alleen.
Site InstellingenGebruikt dezelfde beheerdercontext, maar autoriseert eigen routes opnieuw.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is teruggekeerd uit een succesvolle identity-providerflow of heeft een bestaande geldige applicatiesessie.
PRE-002Het interne account kan via Users.ExternalId of sessiecontext worden gevonden.
PRE-003Rollen en rolstatussen zijn server-side beschikbaar.
PRE-004De applicatie kan vaststellen of de gebruiker een conflicterende leerlingrol heeft.
PRE-005De route of terugkeerroute waarvoor context wordt bepaald is bekend.
PRE-006Clientstate wordt niet als bron van waarheid voor rolcontext gebruikt.

5. Post-condities

IDResultaat
POST-001Er is een server-side frontpage- en navigatiecontext bepaald.
POST-002Bij geldige beheerderrol is beheerdercontext leidend.
POST-003Bij ontbrekende of ongeldige beheerderrol wordt geen beheerdercontext afgegeven.
POST-004Eventuele combinatierollen zijn vastgelegd voor runtime-samenstelling van frontpageblokken.
POST-005Er zijn geen rollen, relaties of autorisaties gewijzigd.
POST-006De gebruiker wordt naar een veilige context geleid wanneer de gevraagde beheerroute niet is toegestaan.

6. Trigger

De usecase start na succesvolle interne sessieverwerking, bij het openen van een beheerderroute of wanneer de applicatie de actieve frontpagecontext opnieuw moet bepalen.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1FrontendApplicatieshellVraagt de actieve context op.De backend ontvangt account- en routecontext.Geen rolcontext uit clientstate vertrouwen.
2BackendAccountserviceLaadt het interne account.Accountstatus en basisprofiel worden gecontroleerd.Users.IsActive moet actief zijn.
3BackendRolserviceLaadt actieve rollen van de gebruiker.De set beschikbare rolcontexten wordt bepaald.UserRoles, Roles.
4BackendRolvalidatieControleert of Leerling gecombineerd is met niet-leerlingrollen.Bij conflicterende combinatie wordt veilige accountafhandeling gekozen.Leerling mag niet gecombineerd met Beheerder.
5BackendContextbepalingControleert of Beheerder actief is.Als Beheerder actief is, wordt beheerdercontext als hoogste prioriteit gekozen.Prioriteit: Beheerder, Docent, Ouder/voogd.
6BackendRoutecontroleControleert of de gevraagde route binnen beheerdercontext toegankelijk is.Toegestane beheerderroute wordt bevestigd of veilig afgewezen.Server-side autorisatie.
7BackendNavigatiecomponentBouwt navigatie voor beheerdercontext.Site Instellingen, Content en Accounts beheren zijn beschikbaar wanneer toegestaan.Geen dubbele navigatie-items.
8BackendFrontendLevert contextbesluit.Frontend ontvangt actieve context, aanvullende rollen en toegestane navigatie.Geen domeinmutatie.
9FrontendApplicatieshellPast de actieve weergave toe.De juiste frontpage of route wordt getoond.UC-BEH-FP-001 of UC-BEH-FP-005.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Het interne account ontbreekt.De applicatie volgt de bestaande provisioning- of onvolledig-accountafhandeling.Bestaande generieke accountflow.Geen beheercontext.
ALT-0022Het interne account is inactief.Reguliere toegang wordt geblokkeerd.Veilige accountmelding of redirect.Geen.
ALT-0033De gebruiker heeft geen rollen.De gebruiker krijgt de beperkte context zonder rol.Geen beheerdermelding.Geen.
ALT-0044Leerlingrol is gecombineerd met Beheerder.De combinatie wordt niet als geldige beheercontext geaccepteerd en vraagt accountcorrectie via beheer.Veilige blokkade.Geen automatische rolwijziging.
ALT-0055Gebruiker heeft Docent en Ouder/voogd maar geen Beheerder.De docent/ouder-context wordt volgens lagere prioriteit afgehandeld buiten deze usecase.Niet van toepassing.Geen.
ALT-0066De oorspronkelijke terugkeerroute is een beheerroute maar beheerderrol ontbreekt.De terugkeerroute wordt genegeerd en de gebruiker gaat naar een veilige context.Inline of redirect.Geen.
ALT-0076Beheerderrol is net ingetrokken tijdens sessie.De eerstvolgende server-side contextcontrole blokkeert beheerdercontext.Veilige toegang geweigerd.Geen.
ALT-0087Navigatie bevat hetzelfde doel via meerdere rolcontexten.De beheerdercontext bepaalt één zichtbaar navigatie-item; dubbele items worden samengevoegd.Niet van toepassing.Geen.

9. Business rules

IDRegel
BR-UC-BEH-FP-002-001De actieve beheercontext wordt uitsluitend server-side bepaald.
BR-UC-BEH-FP-002-002Een gebruiker met Beheerder, Docent en Ouder/voogd krijgt voor frontpages de prioriteit Beheerder, daarna Docent, daarna Ouder/voogd.
BR-UC-BEH-FP-002-003De rol Leerling mag niet gecombineerd worden met Beheerder, Docent of Ouder/voogd.
BR-UC-BEH-FP-002-004Een inactief intern account kan geen beheercontext krijgen, ook niet met geldige identity-providerlogin.
BR-UC-BEH-FP-002-005Een terugkeerroute na login mag alleen worden gebruikt wanneer de server-side context toegang tot die route toestaat.
BR-UC-BEH-FP-002-006Navigatie-items worden niet dubbel getoond wanneer meerdere rolcontexten hetzelfde doel aanbieden.
BR-UC-BEH-FP-002-007Contextbepaling wijzigt geen rollen, relaties, instellingen of autorisaties.
BR-UC-BEH-FP-002-008Beheerdercontext geeft geen recht op live meekijken tijdens actieve leerlingoefeningen.

10. Datavalidatie

Veld / objectValidatie
Users.ExternalIdMoet verwijzen naar precies één intern actief account voor normale toegang.
Users.IsActiveMoet true zijn voor beheercontext.
UserRolesMoet een actieve koppeling bevatten met rol Beheerder.
Roles.IsPublicNiet-publieke rollen zoals Beheerder mogen alleen via beheer worden toegekend; contextbepaling kent ze niet toe.
RolcombinatieLeerlingrol mag niet aanwezig zijn naast Beheerder.
RouteDe gevraagde route moet passen binnen de server-side bepaalde context.
ClientstateMag alleen als voorkeur of UI-hint worden gebruikt en nooit als autorisatiebron.
NavigatieMoet worden afgeleid uit actieve rollen en toegestane routes.

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.
RolcombinatieBlokkeer beheercontext wanneer Leerling gecombineerd voorkomt met Beheerder.
PrioriteitPas Beheerder, Docent, Ouder/voogd toe als vaste volgorde voor frontpages.
TerugkeerrouteControleer een oorspronkelijke route opnieuw voordat deze na login wordt gebruikt.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
1-9DatabaseNiet van toepassingContextbepaling voert geen mutaties uit.
1-9SessiecontextActieve frontendcontextDe server bepaalt de leidende frontendcontext voor de lopende sessie; rollen, relaties en brondomeinen blijven ongewijzigd.
1-9AuditNiet van toepassingEen normale contextbepaling is geen beheerwijziging.

12. Geen datamutaties

EntiteitReden
UsersAccountstatus en profielvelden worden niet gewijzigd.
Roles en UserRolesRollen worden gelezen maar niet toegekend of ingetrokken.
UserRelationshipsRelaties worden niet aangemaakt of beëindigd.
ContentBlocksContextbepaling wijzigt geen content.
Tickets en LiveViewAuditEr wordt geen melding geopend en geen live meekijksessie gestart.

13. State diagram

Niet van toepassing. Deze usecase wijzigt geen persistente domeinstatus, workflowstatus of lifecycle-status. De flow bestaat uit server-side contextcontrole, readmodelopbouw en veilige weergave-afhandeling.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

Contextbepaling na routeverzoek

Terugkeerroute niet toegestaan

17. Popupverwijzingen

Deze usecase gebruikt geen popupregister-popup. Eventuele fout- of blokkademeldingen worden als inline melding, veilige redirect of statusweergave afgehandeld.

PopupKeyMomentDoel
Niet van toepassingGeen bevestigings- of invoerpopup in deze usecase.Niet van toepassing.

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

DoeldocumentAfleiding
Functioneel OntwerpBeschrijft beheercontext als server-side afgeleide frontendcontext met prioriteit Beheerder, Docent, Ouder/voogd en expliciete uitsluiting van leerlingcombinaties.
Technisch OntwerpTechnisch Ontwerp: technische rolflows, readmodels en beheersamenvattingen en frontendcompositie beschrijven de technische uitwerking. Leg contextbepaling vast als onderdeel van sessieverwerking en routeautorisatie, met UserRoles als bron en clientstate uitsluitend als niet-autoriserende UI-informatie.
Software Requirements SpecificationNeem eisen op voor server-side contextcontrole, rolprioriteit, blokkade bij conflicterende rollen en veilige afhandeling van onbevoegde beheerderoutes.

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-FP-002-001SRS-AUTH-001
SRS-ADM-001
AC-AUTH-001
AC-ADM-001
De actieve beheercontext uitsluitend server-side bepalen
REQ-UC-BEH-FP-002-002SRS-ACC-001
SRS-ADM-002
SRS-ADM-001
AC-ACC-001
AC-ADM-002
AC-ADM-001
Een beheerdercontext alleen afgeven bij een actief intern account met actieve beheerderrol
REQ-UC-BEH-FP-002-003SRS-AUTH-003
SRS-TCH-001
SRS-GUA-001
SRS-ADM-002
SRS-ADM-001
AC-AUTH-003
AC-TCH-001
AC-GUA-001
AC-ADM-002
AC-ADM-001
Bij combinatierollen de prioriteit Beheerder, Docent, Ouder/voogd toepassen
REQ-UC-BEH-FP-002-004SRS-AUTH-001
SRS-LRN-009
SRS-ADM-001
AC-AUTH-001
AC-LRN-009
AC-ADM-001
De combinatie Leerling met Beheerder blokkeren als geldige frontendcontext
REQ-UC-BEH-FP-002-005SRS-AUTH-001
SRS-ADM-001
AC-AUTH-001
AC-ADM-001
Een routeparameter, terugkeerroute of browserstate niet gebruiken als autorisatiebron
REQ-UC-BEH-FP-002-006SRS-AUTH-003
SRS-ADM-002
SRS-ADM-001
AC-AUTH-003
AC-ADM-002
AC-ADM-001
Dubbele navigatie-items bij combinatierollen voorkomen
REQ-UC-BEH-FP-002-007SRS-AUTH-001
SRS-ADM-001
SRS-NFR-SEC-001
AC-AUTH-001
AC-ADM-001
AC-NFR-SEC-001
Onbevoegde beheerderoutes veilig afhandelen zonder beheerdata te tonen
REQ-UC-BEH-FP-002-008SRS-AUTH-001
SRS-REL-001
SRS-ADM-002
SRS-ADM-001
AC-AUTH-001
AC-REL-001
AC-ADM-002
AC-ADM-001
Het bepalen van beheercontext mag geen rollen, relaties of autorisaties wijzigen