UC-BEH-FP-005 — Gecombineerde beheerder-docent-ouder-frontpage tonen
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-FP-005 |
| Naam | Gecombineerde beheerder-docent-ouder-frontpage tonen |
| Domein | Beheerder / Frontpage en context |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Frontend, backend, database, autorisatiecomponent, readmodelqueries |
| Rolcontext | Actieve beheerdercontext; bij combinatierollen samengesteld volgens prioriteit Beheerder, Docent, Ouder/voogd |
| Betrokken schermen | Beheerder-frontpage, gezamenlijke frontpage bij combinatierollen, hoofdmenu |
| Gerelateerde usecases | UC-BEH-FP-001, UC-BEH-FP-002, UC-DOC-FP-005 |
| Primaire entiteiten | Users, Roles, UserRoles, ContentBlocks |
| Secundaire entiteiten / events | TeacherLevels, StudentAuthorizations, GuardianRelationships, ExerciseRuns, SiteNotifications |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe de frontpage wordt samengesteld wanneer een gebruiker de rol Beheerder combineert met Docent en/of Ouder/voogd. De applicatie gebruikt geen apart persistent frontpageontwerp per rolcombinatie, maar bouwt de pagina runtime op uit de onderliggende basiscontexten.
Voor gecombineerde beheercontexten is de volgorde vast: eerst beheerderblokken, daarna docentblokken en daarna ouder-/voogdblokken. Boven deze blokken staat één gezamenlijk introblok. De pagina mag daardoor langer worden; het systeem laat geen blokken weg om de pagina kunstmatig korter te maken.
De gecombineerde frontpage blijft een samenvattingspagina. Contextafhankelijke acties, zoals leerlingdetails, niveaubeheer, kinderenoverzicht, geschiedenis of live meekijken, starten pas via de reguliere menustructuur of een gekozen detailobject en worden niet rechtstreeks als mutatie vanaf de gecombineerde frontpage uitgevoerd.
Uitgangspunten
- Beheerder is de hoogste frontpageprioriteit wanneer de rol actief is.
- Gecombineerde frontpages worden runtime samengesteld uit basiscontexten.
- Er bestaat geen beheerbaar volledig ontwerp per specifieke rolcombinatie.
- Alle onderliggende blokken blijven begrensd door hun eigen context en autorisatieregels.
3. Scope
Deze usecase beschrijft:
- Bepalen welke rolcontexten in de gecombineerde frontpage zichtbaar worden.
- Toepassen van de vaste volgorde Beheerder, Docent, Ouder/voogd.
- Tonen van één gezamenlijk introblok.
- Runtime samenstellen uit beheerder-, docent- en ouder-/voogdblokgroepen.
- Voorkomen van duplicatie van navigatie en detailacties.
- Afbakenen dat combinaties geen extra persistent frontpageontwerp krijgen.
Deze usecase beschrijft niet:
- Beheer van contentblokken voor de afzonderlijke basiscontexten.
- Detailflows van docent, ouder/voogd of beheerder.
- Wijzigen van actieve rollen of rolvolgorde door de gebruiker.
- Live meekijken vanuit beheerdercontext.
- Persistente opslag van een samengestelde frontpage-layout per gebruiker.
3.1 Afbakening met aangrenzende usecases
| Onderdeel | Afbakening |
|---|---|
| UC-BEH-FP-002 | Levert de rolset en prioriteit. |
| UC-BEH-FP-001 | Levert de beheerderblokgroep als eerste blokgroep. |
| Docent-frontpage | Levert docentblokken, maar alleen binnen geldige docentcontext. |
| Ouder-/voogdfrontpage | Levert ouder-/voogdblokken, maar alleen binnen geldige oudercontext. |
| Frontpagebeheer | Beheert basiscontent per context, niet een volledig ontwerp per rolcombinatie. |
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker heeft een actief intern account. |
| PRE-002 | De gebruiker heeft een actieve beheerderrol. |
| PRE-003 | De gebruiker kan daarnaast de rol Docent en/of Ouder/voogd hebben. |
| PRE-004 | Er is geen actieve leerlingrol op hetzelfde account. |
| PRE-005 | De basisblokdefinities voor Admin, Teacher en Guardian zijn beschikbaar of hebben veilige lege staten. |
| PRE-006 | De applicatie kan per onderliggende context server-side bepalen welke samenvattingsdata zichtbaar is. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De gebruiker ziet één samengestelde frontpage met beheerderblokken als eerste rolblokgroep. |
| POST-002 | Docentblokken worden alleen toegevoegd wanneer de gebruiker actieve docentcontext heeft. |
| POST-003 | Ouder-/voogdblokken worden alleen toegevoegd wanneer de gebruiker actieve ouder-/voogdcontext heeft. |
| POST-004 | Er is geen nieuwe samengestelde layout opgeslagen. |
| POST-005 | Contextafhankelijke detailacties blijven op onderliggende routes. |
| POST-006 | Geen rol-, relatie- of autorisatierecord is gewijzigd. |
6. Trigger
De usecase start wanneer UC-BEH-FP-002 vaststelt dat een gebruiker beheerdercontext heeft en daarnaast één of meer toegestane niet-leerlingrollen bezit.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Backend | Contextservice | Ontvangt de actieve rolset. | Beheerdercontext is leidend. | UC-BEH-FP-002. |
| 2 | Backend | Rolvalidatie | Controleert dat geen leerlingrol aanwezig is. | Bij geldige combinatie gaat samenstelling verder. | Leerling uitgesloten. |
| 3 | Backend | Frontpagecomposer | Maakt één gezamenlijk introblok. | Het introblok gebruikt beheerbare content voor de gecombineerde context of veilige basiscontent. | Geen losse intro per rolblokgroep. |
| 4 | Backend | Frontpagecomposer | Voegt beheerderblokgroep toe. | Introblok, attentieblok, Contentbeheer, Accounts & rollen en Recente beheerwijzigingen worden als eerste rolblokgroep opgenomen. | UC-BEH-FP-001 t/m 004. |
| 5 | Backend | Frontpagecomposer | Controleert docentcontext. | Bij actieve docentrol worden docentfrontpageblokken toegevoegd na beheerderblokken. | Docentcontext blijft eigen autorisatiegrens. |
| 6 | Backend | Frontpagecomposer | Controleert ouder-/voogdcontext. | Bij actieve ouder-/voogdrol worden ouder-/voogdblokken toegevoegd na docentblokken. | Oudercontext blijft eigen autorisatiegrens. |
| 7 | Backend | Navigatiecomponent | Voorkomt dubbele navigatie-items. | Gelijke routes of functies worden in de actieve context niet dubbel getoond. | Combinatierolregel. |
| 8 | Backend | Readmodel | Levert de samengestelde frontpage. | De response bevat basisblokken in vaste volgorde en geen vrij samengestelde layoutdefinitie. | Runtime samenstelling. |
| 9 | Frontend | Gecombineerde frontpage | Rendert de blokgroepen. | Beheerder ziet één pagina in vaste prioriteitsvolgorde. | Pagina mag langer zijn. |
| 10 | Beheerder | Frontpage | Kiest eventueel een onderliggende route. | Doelpagina voert eigen autorisatie en procesflow uit. | Geen mutatie vanaf frontpage. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Leerlingrol is aanwezig naast Beheerder. | De combinatie wordt niet als geldige samengestelde frontpage verwerkt. | Veilige accountafhandeling. | Geen. |
| ALT-002 | 5 | Docentrol is niet actief. | Docentblokken worden overgeslagen; beheerder- en eventuele ouderblokken blijven zichtbaar. | Niet van toepassing. | Geen. |
| ALT-003 | 6 | Ouder-/voogdrol is niet actief. | Ouder-/voogdblokken worden overgeslagen. | Niet van toepassing. | Geen. |
| ALT-004 | 3 | Specifieke gezamenlijke introcontent ontbreekt. | Het systeem toont een veilige generieke beheerderintro of codegedreven intro. | Niet van toepassing. | Geen. |
| ALT-005 | 5 | Docentcontext heeft geen gekoppelde leerlingen of niveaus. | Docentblok toont eigen lege staat, niet een beheerderlege staat. | Niet van toepassing. | Geen. |
| ALT-006 | 6 | Ouder-/voogdcontext heeft geen gekoppelde kinderen. | Ouderblok toont eigen lege staat. | Niet van toepassing. | Geen. |
| ALT-007 | 7 | Een navigatie-item bestaat in meerdere contexten. | Het item wordt niet dubbel getoond; de route bepaalt de actieve context bij openen. | Niet van toepassing. | Geen. |
| ALT-008 | 10 | Gebruiker probeert via beheerderblok een docentdetailactie zonder docentcontext. | De doelroute voert server-side autorisatie uit en blokkeert de actie. | Inline toegang geweigerd. | Geen. |
9. Business rules
| ID | Regel |
|---|---|
| BR-UC-BEH-FP-005-001 | Bij gecombineerde frontpages met Beheerder geldt de volgorde Beheerder, Docent, Ouder/voogd. |
| BR-UC-BEH-FP-005-002 | Er wordt één gezamenlijk introblok getoond en niet één los introblok per rolcontext. |
| BR-UC-BEH-FP-005-003 | Het systeem beheert geen volledig persistent frontpageontwerp per mogelijke rolcombinatie. |
| BR-UC-BEH-FP-005-004 | De samengestelde frontpage wordt runtime opgebouwd uit basiscontexten. |
| BR-UC-BEH-FP-005-005 | De pagina mag langer worden; het systeem verbergt geen rolblokgroep uitsluitend om de pagina kort te houden. |
| BR-UC-BEH-FP-005-006 | Onderliggende docent- en ouder-/voogdblokken behouden hun eigen autorisatie- en contextfilters. |
| BR-UC-BEH-FP-005-007 | Contextafhankelijke detailacties starten niet als directe mutatie vanaf de gecombineerde frontpage. |
| BR-UC-BEH-FP-005-008 | Dubbele navigatie-items worden samengevoegd of contextueel eenduidig weergegeven. |
| BR-UC-BEH-FP-005-009 | Een beheerderrol geeft geen ouder- of docenttoegang zonder de betreffende rolcontext. |
| BR-UC-BEH-FP-005-010 | Een gecombineerde frontpage mag geen leerlingcontext bevatten. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| Rolset | Moet actieve Beheerder bevatten en mag geen Leerling bevatten. |
| Docentblokken | Alleen tonen bij actieve docentrol en geldige docentcontext. |
| Ouderblokken | Alleen tonen bij actieve ouder-/voogdrol en geldige oudercontext. |
| Introblok | Maximaal één gezamenlijk introblok boven rolblokgroepen. |
| Blokvolgorde | Beheerder voor Docent voor Ouder/voogd. |
| Persistentie | Geen opslag van samengestelde rolcombinatielayout. |
| Navigatie | Geen dubbele items voor hetzelfde doel binnen actieve frontendcontext. |
| Doorklikroutes | Elke doelroute voert eigen server-side autorisatie uit. |
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. |
| Rolvolgorde | Pas de blokvolgorde server-side toe voordat het readmodel naar de frontend gaat. |
| Geen combinatielayout | Sla geen samengesteld frontpageontwerp per rolcombinatie op. |
| Ondercontexten | Voer per rolblokgroep de eigen autorisatiefilters uit. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1-10 | Database | Niet van toepassing | Runtime samenstelling wijzigt geen rollen, relaties of content. |
| 1-10 | Sessiecontext | Actieve frontendcontext | De leidende context kan in de beveiligde sessie beschikbaar zijn; er wordt geen samengestelde layout persistent opgeslagen. |
| 1-10 | Audit | Niet van toepassing | Het bekijken van de samengestelde frontpage is geen beheerwijziging. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| ContentBlocks | Contentblokken worden gelezen, niet aangepast. |
| Users, Roles en UserRoles | Rolset wordt gelezen, niet gewijzigd. |
| TeacherLevels en StudentAuthorizations | Docentblokken lezen contextdata zonder autorisaties te wijzigen. |
| UserRelationships | Ouder-/voogdcontext wordt gelezen zonder relaties te wijzigen. |
| ExerciseRuns en LiveViewAudit | Geen geschiedeniswijziging en geen live meekijken 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
Runtime samenstelling combinatierollen
Doorklik met eigen autorisatie
17. Popupverwijzingen
Deze usecase gebruikt geen popupregister-popup. Eventuele fout- of blokkademeldingen worden als inline melding, veilige redirect of statusweergave afgehandeld.
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Geen bevestigings- of invoerpopup in deze usecase. | Niet van toepassing. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft gecombineerde frontpageweergave met één introblok, vaste volgorde Beheerder, Docent, Ouder/voogd en geen aparte beheerbare rolcombinatie-layout. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, readmodels en beheersamenvattingen en frontendcompositie beschrijven de technische uitwerking. Leg de runtime-compositie vast als readmodelopbouw uit basiscontexten, met sessiecontext, rolprioriteit, blokvolgorde en routeautorisatie per doelpagina. |
| Software Requirements Specification | Neem eisen op voor rolprioriteit, één gezamenlijk introblok, geen persistente combinatielayout, behoud van contextfilters en veilige blokkade bij conflicterende rollen. |
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-FP-005-001 | SRS-AUTH-003 SRS-TCH-001 SRS-GUA-001 SRS-ADM-001 AC-AUTH-003 AC-TCH-001 AC-GUA-001 AC-ADM-001 | Bij gecombineerde beheerdercontexten de volgorde Beheerder, Docent, Ouder/voogd toepassen |
REQ-UC-BEH-FP-005-002 | SRS-AUTH-003 SRS-ADM-001 AC-AUTH-003 AC-ADM-001 | Op een gecombineerde frontpage één gezamenlijk introblok tonen |
REQ-UC-BEH-FP-005-003 | SRS-ADM-002 SRS-ADM-001 AC-ADM-002 AC-ADM-001 | Geen volledig frontpageontwerp per rolcombinatie persistent beheren |
REQ-UC-BEH-FP-005-004 | SRS-AUTH-003 SRS-LRN-009 SRS-ADM-001 AC-AUTH-003 AC-LRN-009 AC-ADM-001 | Gecombineerde frontpages runtime samenstellen uit onderliggende basiscontexten |
REQ-UC-BEH-FP-005-005 | SRS-TCH-001 SRS-ADM-001 AC-TCH-001 AC-ADM-001 | Docentblokken alleen tonen wanneer de gebruiker een actieve docentcontext heeft |
REQ-UC-BEH-FP-005-006 | SRS-GUA-001 SRS-ADM-001 AC-GUA-001 AC-ADM-001 | Ouder-/voogdblokken alleen tonen wanneer de gebruiker een actieve ouder-/voogdcontext heeft |
REQ-UC-BEH-FP-005-007 | SRS-AUTH-001 SRS-LRN-009 SRS-ADM-001 AC-AUTH-001 AC-LRN-009 AC-ADM-001 | De combinatie Leerling met Beheerder blokkeren |
REQ-UC-BEH-FP-005-008 | SRS-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-005-009 | SRS-AUTH-001 SRS-ADM-001 AC-AUTH-001 AC-ADM-001 | Voor elke doorklikroute opnieuw server-side autorisatie toepassen |
REQ-UC-BEH-FP-005-010 | SRS-AUTH-001 SRS-AUTH-003 SRS-REL-001 SRS-ADM-002 SRS-ADM-001 AC-AUTH-001 AC-AUTH-003 AC-REL-001 AC-ADM-002 AC-ADM-001 | Het tonen van een gecombineerde frontpage mag geen rollen, relaties of autorisaties wijzigen |