Skip to main content

UC-OVG-FP-002 — Ouder-/voogdcontext bepalen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-OVG-FP-002
NaamOuder-/voogdcontext bepalen
DomeinOuder/voogd / Frontpage en context
Primaire actorOuder/voogd
Secundaire actor(en)Frontend, backend, autorisatiecomponent, database
RolcontextActieve ouder-/voogdcontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenOuder-/voogd-frontpage, rolcontext-routering
Gerelateerde usecasesUC-OVG-FP-001, UC-OVG-FP-005, UC-GEN-ACC-002, UC-GEN-PROF-007
Primaire entiteitenUsers, Roles, UserRoles, UserSettings
Secundaire entiteiten / eventsRolcontext-readmodel; geen domeinevents
Gerelateerde popupsNiet van toepassing
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

De usecase beschrijft hoe OefenHub bepaalt of de ingelogde gebruiker de ouder-/voogdcontext mag gebruiken. De context wordt niet uit de URL of browserstate afgeleid, maar uit de server-side sessie, actieve rollen en geldige applicatiestatus.

Wanneer een gebruiker meerdere niet-leerlingrollen heeft, kan de applicatie een gecombineerde of contextspecifieke frontendweergave samenstellen. De rol Leerling blijft uitgesloten van combinaties met Ouder/voogd.

Uitgangspunten

  • De server-side rolcontext is leidend boven clientstate.
  • Leerling mag nooit gecombineerd worden met Ouder/voogd.
  • Ouder/voogd mag gecombineerd zijn met Docent en/of Beheerder.
  • Een actieve ouder-/voogdcontext betekent nog niet dat er actieve kindrelaties bestaan.
  • Contextbepaling wijzigt geen rollen of relaties.

3. Scope

Deze usecase beschrijft:

  • Server-side bepalen of de ouder-/voogdcontext actief mag worden.
  • Uitsluiten van leerlingrolcombinaties.
  • Bepalen van gecombineerde context wanneer Docent en Ouder/voogd samen aanwezig zijn.
  • Veilig afhandelen van oude routeparameters of clientstate.

Deze usecase beschrijft niet:

  • Rollen beheren; dit hoort bij beheerder/accountbeheer.
  • Relaties maken of accepteren; dit hoort bij generiek/relaties.
  • Kinderenoverzicht laden; dit hoort bij UC-OVG-KIND-001.

3.1 Afbakening met aangrenzende domeinen

OnderdeelAfbakening
Generiek / RelatiesRelatie-uitnodigingen, acceptatie en algemene relatievorming blijven bronhoudend in het generieke relatiedomein.
Generiek / BerichtenSysteemberichten en leesstatussen blijven bronhoudend in het centrale berichtendomein.
LeerlingDe leerling blijft eigenaar van eigen oefenuitvoering; ouder/voogd kan niet namens het kind oefenen.
DocentDocentautorisaties en docentresultaatinzage blijven begrensd door docentcontext; ouder-/voogdcontext gebruikt eigen relatiegrens.

4. Pre-condities

IDWaarde
001De gebruiker heeft een geldige OefenHub-sessie.
002UserRoles zijn beschikbaar voor server-side autorisatie.
003De rolcontext-routering is actief.

5. Post-condities

IDWaarde
001De ouder-/voogdcontext is vastgesteld, geweigerd of gecombineerd volgens de rolregels.
002Er is geen rol, relatie of voorkeur gewijzigd.
003Vervolgschermen gebruiken dezelfde server-side context.

6. Trigger

De usecase start wanneer de ouder/voogd de betreffende ouder-/voogdroute opent of de beschreven actie uitvoert binnen de actieve ouder-/voogdcontext.

7. Normale processtroom

StapActor / componentActieResultaatData / controle
1FrontendVraagt context voor ouder-/voogdroute opBackend ontvangt routeverzoekSessie
2BackendLeest actieve rollenBeschikbare rolcontexten zijn bekendUserRoles
3BackendControleert leerlinguitsluitingLeerlingcombinatie wordt geblokkeerdRolregels
4BackendBepaalt ouder-/voogdcontextContext wordt toegestaan of geweigerdAutorisatie
5BackendBepaalt gecombineerde contextDocent + Ouder/voogd wordt als gecombineerde frontend behandeldRolprioriteit
6FrontendRendert passende routeFrontpage of veilige afhandeling verschijntContextresultaat

7.1 Scherm- en routegedrag

  • De pagina wordt opgebouwd als overzichts- en oriëntatiepagina, niet als mutatiepagina.
  • Blokken tonen compacte waarden en verwijzen naar onderliggende routes voor detailacties.
  • Bij lege of niet beschikbare data wordt een veilige lege staat getoond in plaats van gedeeltelijk ongeautoriseerde data.
  • De frontend mag visuele keuzes tonen, maar backendautorisatie bepaalt de dataset.

8. Alternatieve en exceptionele processtromen

IDWaarde
001Geen ouder-/voogdrol: toegang tot ouder-/voogdroute wordt geweigerd.
002Gebruiker heeft leerlingrol: ouder-/voogdcontext wordt niet gecombineerd en route wordt geweigerd.
003Oude browsercontext wijst naar ouder-/voogd maar rol is ingetrokken: server-side rolcontrole is leidend.
004Docent + Ouder/voogd: gecombineerde frontpage wordt runtime samengesteld volgens vaste volgorde.
005Beheerder + Docent + Ouder/voogd: beheerderprioriteit geldt in de beheerderfrontpage; ouder-/voogdcontext blijft wel afzonderlijk bereikbaar waar toegestaan.

8.1 Afhandeling van verouderde of ongeldige clientstate

  • De backend herhaalt de autorisatiecontrole bij iedere vervolgactie.
  • Oude selectie-, route- of browsercontext wordt genegeerd wanneer de actuele server-side context geen toegang meer geeft.
  • De frontend mag verouderde weergave herstellen door opnieuw het actuele viewmodel op te vragen.

9. Business rules

IDWaarde
001De server-side rolcontext is leidend boven clientstate.
002Leerling mag nooit gecombineerd worden met Ouder/voogd.
003Ouder/voogd mag gecombineerd zijn met Docent en/of Beheerder.
004Een actieve ouder-/voogdcontext betekent nog niet dat er actieve kindrelaties bestaan.
005Contextbepaling wijzigt geen rollen of relaties.

9.1 Readmodel- en tellerdefinities

WaardeDefinitieUitsluitingen / grenzen
Beschikbare rolcontextenAfgeleid uit actieve UserRoles van de ingelogde gebruiker.Clientstate en routeparameters mogen geen extra rolcontext creëren.
Combinatie Docent + Ouder/voogdRuntime bepaald wanneer beide rollen actief zijn.Er wordt geen apart persistent combinatierecord gebruikt.
LeerlinguitsluitingAfgeleid uit aanwezigheid van leerlingrol.Leerling mag niet gecombineerd worden met ouder-/voogdcontext.

9.2 Autorisatie- en privacygrenzen

  • De zichtbare dataset wordt altijd server-side beperkt tot de actieve ouder-/voogdcontext.
  • Persoonsgegevens van kinderen worden alleen getoond zolang er een actieve ouder-/voogdrelatie bestaat.
  • Historische oefenresultaten worden gelezen binnen de toegestane context, maar niet gewijzigd door raadplegen of samenvatten.

10. Datavalidatie

IDWaarde
001UserId uit sessie moet bestaan en actief zijn.
002De rol Ouder/voogd moet actief zijn op het moment van routecontrole.
003Routeparameters mogen geen andere rolcontext afdwingen dan server-side toegestaan.
004Bij combinatierollen moet de vaste volgorde voor frontpages toepasbaar zijn.

11. Datamutaties en events

IDWaarde
001Geen domeinmutaties.
002Contextbepaling is runtime autorisatie- en routeringslogica op basis van de actuele sessie en rollen.

12. Geen datamutaties

IDWaarde
001UserRoles worden niet gewijzigd.
002UserRelationships worden niet gelezen als autorisatiebron voor de rol zelf.
003UserSettings worden niet aangepast door contextbepaling.

13. State diagram

Niet van toepassing. Deze usecase wijzigt geen persistent statusobject. De ouder-/voogdcontext is een runtimebesluit en geen opgeslagen lifecyclestatus.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyGebruikOpmerking
Niet van toepassingDeze usecase gebruikt geen popupregister-popup.Lege staten en inline meldingen zijn scherminhoud en geen popupdefinitie.

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

AspectAfleiding
FO/TO/SRS-001Ouder/voogd is een zelfstandige rolcontext.
FO/TO/SRS-002De rol Leerling kan niet gecombineerd worden met Ouder/voogd.
FO/TO/SRS-003Docent en Ouder/voogd mogen gecombineerd voorkomen.

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-OVG-FP-002-001SRS-AUTH-001
SRS-GUA-001
AC-AUTH-001
AC-GUA-001
Ouder-/voogdcontext server-side bepalen
REQ-UC-OVG-FP-002-002SRS-AUTH-001
SRS-LRN-009
SRS-GUA-001
AC-AUTH-001
AC-LRN-009
AC-GUA-001
Leerlingcombinaties met ouder-/voogd blokkeren
REQ-UC-OVG-FP-002-003SRS-AUTH-001
SRS-AUTH-002
SRS-GUA-001
AC-AUTH-001
AC-AUTH-002
AC-GUA-001
Oude clientstate negeren wanneer die niet overeenkomt met actuele rollen
REQ-UC-OVG-FP-002-004SRS-AUTH-003
SRS-LRN-009
SRS-TCH-001
SRS-GUA-001
AC-AUTH-003
AC-LRN-009
AC-TCH-001
AC-GUA-001
Gecombineerde Docent + Ouder/voogd-context runtime kunnen samenstellen
REQ-UC-OVG-FP-002-005SRS-REL-001
SRS-GUA-001
AC-REL-001
AC-GUA-001
Contextbepaling niet gebruiken om rollen of relaties te wijzigen