UC-BEH-FP-001 — Beheerder-frontpage bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-FP-001 |
| Naam | Beheerder-frontpage bekijken |
| 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-002, UC-BEH-FP-003, UC-BEH-FP-004, UC-BEH-FP-005, UC-GEN-ACC-002, UC-GEN-NOT-001 |
| Primaire entiteiten | Users, Roles, UserRoles, ContentBlocks, SiteNotifications |
| Secundaire entiteiten / events | ExerciseModules, Categories, TeacherLevels, Exercises, Tickets, AdminAuditLog, SiteFeatureToggles |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
De beheerder-frontpage is de eerste beheergerichte overzichtspagina nadat een gebruiker met een geldige beheerderrol de applicatie binnenkomt in beheerdercontext. De pagina geeft compacte oriëntatie en actuele beheersamenvattingen, maar voert zelf geen inhoudelijke beheerwijzigingen uit.
De pagina bevat minimaal een introblok, een attentieblok, een blok Contentbeheer, een blok Accounts & rollen en een blok Recente beheerwijzigingen. De structuur en volgorde van deze blokken zijn codegedreven. Beheerbare teksten binnen de blokken kunnen uit het contentblokmodel komen, maar de frontpage wordt niet vrij opgebouwd als pagebuilder.
Dieper beheer blijft bereikbaar via de vaste navigatie, zoals Site Instellingen, Content en Accounts beheren, of via een expliciete doorklik naar een onderliggende beheerpagina. De frontpage mag beheerstatussen tonen en naar beheerpagina’s verwijzen, maar bevat geen directe mutatieacties zoals activeren, uitschakelen, migreren, verwijderen of rollen wijzigen.
Uitgangspunten
- De beheerder-frontpage wordt server-side samengesteld vanuit een geldige beheerdercontext.
- Systeemnotificaties blokkeren het laden van de frontpage niet; controle op zichtbare notificaties gebeurt nadat de frontpage geladen is.
- Tellers en recente wijzigingen zijn readmodelwaarden en geen bronrecords op de frontpage zelf.
- Bij ontbrekende contentbloktekst blijft de codevaste blokstructuur intact en wordt een veilige lege of standaardweergave getoond.
3. Scope
Deze usecase beschrijft:
- Laden en tonen van de beheerder-frontpage.
- Tonen van de vaste blokstructuur van de beheerder-frontpage.
- Controleren dat de gebruiker een actieve beheerdercontext heeft.
- Opvragen van contentblokteksten en readmodelgegevens voor de frontpage.
- Afbakenen dat de frontpage geen werkpagina voor mutaties is.
- Starten van de systeemnotificatiecontrole na succesvolle frontpageload.
Deze usecase beschrijft niet:
- Wijzigen van frontpagecontent; dit hoort bij Frontpagebeheer.
- Wijzigen van site-instellingen, popups, systeemberichten of features.
- Behandelen van meldingen; dit blijft bronhoudend in het meldingen-domein.
- Accountbeheer, rolbeheer of accountanonimisering.
- Live meekijken met actieve oefeningen; beheerder mag dat niet vanuit de frontpage starten.
3.1 Afbakening met aangrenzende usecases
| Onderdeel | Afbakening |
|---|---|
| UC-BEH-FP-002 | Bepaalt of de gebruiker beheerdercontext heeft; deze usecase gebruikt dat resultaat om de frontpage te tonen. |
| UC-BEH-FP-003 | Levert de concrete samenvattingswaarden binnen de frontpageblokken. |
| UC-BEH-FP-004 | Levert de regels voor het blok Recente beheerwijzigingen. |
| UC-BEH-FP-005 | Breidt de frontpage uit wanneer dezelfde gebruiker ook docent of ouder/voogd is. |
| UC-BEH-SITE-001 | Beschrijft de Site Instellingen-hub als aparte beheerroute, niet als onderdeel van de frontpage. |
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol geauthenticeerd via de identity provider en heeft een intern actief OefenHub-account. |
| PRE-002 | De server-side sessieverwerking heeft vastgesteld dat de gebruiker de rol Beheerder bezit. |
| PRE-003 | De beheerderrol is actief en niet ingetrokken of geblokkeerd. |
| PRE-004 | De frontendroute voor de beheerder-frontpage is bereikbaar binnen de actieve applicatiecontext. |
| PRE-005 | De contentblok- en readmodelbronnen zijn uitleesbaar of kunnen veilig met lege staten omgaan. |
| PRE-006 | Systeemnotificaties worden pas na frontpageload beoordeeld. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet de beheerder-frontpage met de vaste hoofdblokken. |
| POST-002 | De frontpage heeft geen domeinmutaties uitgevoerd. |
| POST-003 | De zichtbare navigatie sluit aan op de beheerdercontext. |
| POST-004 | De getoonde samenvattingen zijn via readmodels afgeleid uit de brondomeinen. |
| POST-005 | Na succesvolle frontpageload kan de systeemnotificatiecontrole worden gestart. |
| POST-006 | Bij een ongeldige beheerdercontext is geen beheerderfrontpage getoond. |
6. Trigger
De usecase start wanneer een ingelogde gebruiker met beheerderrol de beheerder-frontpage opent, bijvoorbeeld na login, via Home of na terugkeer vanuit een andere beheerroute.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Beheerder | Browser / route | Opent de beheerder-frontpage. | De frontend vraagt server-side de actuele applicatie- en rolcontext op. | Oude clientstate mag geen beheercontext afdwingen. |
| 2 | Frontend | Routering | Stuurt routeverzoek naar backend. | De backend controleert accountstatus, rolstatus en actieve frontendcontext. | Users, UserRoles, Roles. |
| 3 | Backend | Autorisatiecomponent | Bepaalt of Beheerder de leidende context is. | Bij een geldige beheerdercontext wordt de beheerderfrontpage toegestaan. | Beheerder prioriteit boven Docent en Ouder/voogd. |
| 4 | Backend | Contentblokservice | Laadt beheerbare intro- en blokteksten voor context Admin. | Beschikbare contentblokken worden aan het frontpage-readmodel toegevoegd. | DomainType FrontPage, ContextType Admin. |
| 5 | Backend | Readmodelqueries | Laadt beheersamenvattingen. | Attentie, Contentbeheer en Accounts & rollen worden als compacte waarden toegevoegd. | UC-BEH-FP-003. |
| 6 | Backend | Auditreadmodel | Laadt recente beheerwijzigingen. | Een beperkte lijst met centrale beheeracties wordt toegevoegd. | UC-BEH-FP-004. |
| 7 | Backend | Navigatiecomponent | Bepaalt beheerdernavigatie. | Menu bevat minimaal Site Instellingen, Content en Accounts beheren. | Geen dubbele items door combinatierollen. |
| 8 | Backend | Frontend | Levert frontpage-readmodel. | De frontend ontvangt blokken, labels, waarden, navigatie en lege-staatinformatie. | Read-only response. |
| 9 | Frontend | Beheerder-frontpage | Rendert de vaste blokstructuur. | Introblok, attentieblok, Contentbeheer, Accounts & rollen en Recente beheerwijzigingen worden getoond. | Structuur is codegedreven. |
| 10 | Frontend | Frontpage | Activeert vervolgcontrole op systeemnotificaties. | De pagina blijft zichtbaar; een relevante notificatie kan erboven worden getoond. | UC-GEN-NOT-001. |
| 11 | Beheerder | Beheerder-frontpage | Oriënteert zich of kiest een vaste navigatieroute. | De frontpage zelf voert geen mutatie uit. | Dieper beheer via eigen beheerpagina. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Het interne account is niet actief. | De backend blokkeert de beheerder-frontpage en leidt naar de veilige accountafhandeling. | Inline of bestaande accountafhandeling. | Geen. |
| ALT-002 | 3 | De gebruiker heeft geen actieve beheerderrol. | De beheerder-frontpage wordt niet getoond; de gebruiker krijgt de passende niet-beheercontext. | Inline toegang geweigerd of veilige redirect. | Geen. |
| ALT-003 | 3 | De gebruiker heeft Beheerder plus Docent of Ouder/voogd. | De beheerdercontext is leidend; aanvullende blokken worden pas via UC-BEH-FP-005 runtime toegevoegd. | Niet van toepassing. | Geen. |
| ALT-004 | 4 | Een verwacht contentblok ontbreekt. | De codevaste bloklocatie blijft bestaan met neutrale tekst of lege-staatweergave volgens schermconventie. | Niet van toepassing. | Geen. |
| ALT-005 | 5 | Een samenvattingsquery faalt gedeeltelijk. | De overige blokken blijven zichtbaar; het betreffende blok toont een veilige fout- of leegstaat zonder beheerdata te lekken. | Inline melding. | Geen. |
| ALT-006 | 6 | Er zijn geen recente beheerwijzigingen. | Het blok Recente beheerwijzigingen toont een neutrale lege staat. | Niet van toepassing. | Geen. |
| ALT-007 | 7 | Een onderliggende beheerroute is tijdelijk niet beschikbaar. | De frontpage blijft bruikbaar; de route wordt niet als directe mutatieactie uitgevoerd. | Inline terugkoppeling bij doorklik. | Geen. |
| ALT-008 | 10 | Er zijn meerdere actieve systeemnotificaties. | Na frontpageload wordt de oudste relevante notificatie als eerste getoond; na sluiten volgt controle op de volgende. | Systeemnotificatiecomponent, geen popupregister-popup. | Geen server-side seen-registratie. |
9. Business rules
| ID | Regel |
|---|---|
| BR-UC-BEH-FP-001-001 | De beheerder-frontpage is een overzichts- en oriëntatiepagina en geen werkpagina voor domeinmutaties. |
| BR-UC-BEH-FP-001-002 | De vaste blokstructuur bestaat minimaal uit introblok, attentieblok, Contentbeheer, Accounts & rollen en Recente beheerwijzigingen. |
| BR-UC-BEH-FP-001-003 | De structurele layout, volgorde en aanwezigheid van hoofdblokken zijn codegedreven en niet vrij beheerbaar. |
| BR-UC-BEH-FP-001-004 | Beheerbare teksten binnen de frontpage mogen uit het contentblokmodel komen, maar mogen geen autorisaties of zichtbare dataset wijzigen. |
| BR-UC-BEH-FP-001-005 | De beheerdercontext wordt server-side bepaald; routeparameters of browserstate mogen geen beheercontext afdwingen. |
| BR-UC-BEH-FP-001-006 | Bij combinatierollen heeft beheerderfrontpageprioriteit boven docent- en ouder-/voogdfrontpageblokken. |
| BR-UC-BEH-FP-001-007 | Systeemnotificaties worden na het laden van de frontpage gecontroleerd en blokkeren de frontpageload niet. |
| BR-UC-BEH-FP-001-008 | De beheerder mag vanaf de frontpage geen live-meekijksessie met een actieve leerlingrun starten. |
| BR-UC-BEH-FP-001-009 | Alle zichtbare samenvattingswaarden zijn afgeleide readmodelwaarden met expliciete definities. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| Route | Moet overeenkomen met de beheerder-frontpageroute en server-side autorisatie vereisen. |
| Account | Users.IsActive moet actief zijn en het account mag niet geanonimiseerd of geblokkeerd zijn. |
| Rolcontext | De gebruiker moet een actieve UserRole met rolcode Admin of Beheerder hebben. |
| ContentBlocks | DomainType moet FrontPage zijn en ContextType moet Admin zijn voor beheerdercontent. |
| Samenvattingswaarden | Waarden mogen alleen uit geautoriseerde readmodels komen en nooit uit clientberekeningen. |
| Navigatie-items | Items mogen alleen zichtbaar zijn wanneer de beheerderrol server-side is vastgesteld. |
| Systeemnotificaties | Notificatiecontrole gebruikt eigen notificatieregels en geen popupregisterrecords. |
| Lege staten | Een ontbrekend blok of lege dataset mag geen technische identifiers of foutdetails tonen. |
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. |
| Frontpagecontext | Controleer dat de gekozen frontpagecontext Admin is en niet door querystring is afgedwongen. |
| Contentblokken | Filter contentblokken op DomainType FrontPage en ContextType Admin. |
| Notificatiecontrole | Start notificatiecontrole pas nadat de frontpage-readmodelresponse succesvol is opgebouwd. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1-11 | Database | Niet van toepassing | Het bekijken van de beheerder-frontpage wijzigt geen brondomeinen. |
| 10 | Clientstate | Systeemnotificatie-rendering | Eenmalige notificaties kunnen clientside als gezien worden gemarkeerd wanneer zij daadwerkelijk worden getoond en gesloten. |
| 10 | Database | Niet van toepassing | Er wordt geen server-side seen-tabel voor systeemnotificaties bijgewerkt. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| ContentBlocks | Teksten worden gelezen maar niet gewijzigd. |
| SiteSettings en SiteFeatureToggles | Instellingen en features worden niet aangepast vanaf de frontpage. |
| ExerciseModules, Categories, TeacherLevels en Exercises | Contentbeheerwaarden worden alleen geteld. |
| Users, Roles en UserRoles | Account- en rolgegevens worden niet gewijzigd door frontpageweergave. |
| Tickets | Meldingtotalen worden gelezen zonder ticketstatus of assignment te wijzigen. |
| AdminAuditLog | Het bekijken van de frontpage hoeft geen beheerwijziging te registreren. |
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
Hoofdstroom beheerder-frontpage
Blokkade zonder beheerderrol
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 | Leg de beheerder-frontpage vast als vaste overzichtspagina met introblok, attentieblok, Contentbeheer, Accounts & rollen en Recente beheerwijzigingen. Beschrijf dat directe mutaties niet op deze pagina plaatsvinden. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, readmodels en beheersamenvattingen en frontendcompositie beschrijven de technische uitwerking. Beschrijf server-side contextbepaling, frontpage-readmodel, contentbloklookup voor ContextType Admin, read-only queries en notificatiecontrole na frontpageload. |
| Software Requirements Specification | Neem eisen op voor beheerderautorisatie, vaste blokstructuur, read-only gedrag, veilige lege staten, combinatierolprioriteit en notificatiegedrag na load. |
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-001-001 | SRS-ADM-002 SRS-ADM-001 AC-ADM-002 AC-ADM-001 | De beheerder-frontpage alleen tonen aan gebruikers met een actieve beheerderrol |
REQ-UC-BEH-FP-001-002 | SRS-ACC-002 SRS-ADM-002 SRS-ADM-001 SRS-CNT-001 AC-ACC-002 AC-ADM-002 AC-ADM-001 AC-CNT-001 | Op de beheerder-frontpage minimaal een introblok, attentieblok, Contentbeheer, Accounts & rollen en Recente beheerwijzigingen tonen |
REQ-UC-BEH-FP-001-003 | SRS-ADM-001 AC-ADM-001 | De structuur en volgorde van de beheerder-frontpage codegedreven houden |
REQ-UC-BEH-FP-001-004 | SRS-ADM-001 AC-ADM-001 | Vanaf de beheerder-frontpage geen directe beheerwijzigingen uitvoeren |
REQ-UC-BEH-FP-001-005 | SRS-ADM-001 SRS-CNT-001 AC-ADM-001 AC-CNT-001 | Beheerbare frontpageteksten ophalen uit de juiste frontpagecontentcontext wanneer deze beschikbaar zijn |
REQ-UC-BEH-FP-001-006 | SRS-RDM-001 SRS-RDM-009 SRS-ADM-001 SRS-CNT-001 SRS-NFR-SEC-001 AC-RDM-001 AC-RDM-009 AC-ADM-001 AC-CNT-001 AC-NFR-SEC-001 | Bij ontbrekende content of lege datasets een veilige lege staat tonen |
REQ-UC-BEH-FP-001-007 | SRS-AUTH-003 SRS-ADM-002 SRS-ADM-001 AC-AUTH-003 AC-ADM-002 AC-ADM-001 | Bij gecombineerde rollen de beheerdercontext als hoogste frontpageprioriteit toepassen |
REQ-UC-BEH-FP-001-008 | SRS-ADM-002 SRS-ADM-001 SRS-POP-002 AC-ADM-002 AC-ADM-001 AC-POP-002 | Systeemnotificaties pas controleren nadat de frontpage succesvol is geladen |
REQ-UC-BEH-FP-001-009 | SRS-LRN-001 SRS-ADM-001 SRS-LIVE-006 AC-LRN-001 AC-ADM-001 AC-LIVE-006 | Voorkomen dat een beheerder vanaf de frontpage live meekijken met een actieve oefening start |