UC-BEH-DOCSUP-004 — Niveau-detail binnen docentcontext bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-DOCSUP-004 |
| Naam | Niveau-detail binnen docentcontext bekijken |
| Domein | Beheerder / Docentondersteuning |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Frontend, backend, database, autorisatiecomponent, docentondersteuningcomponent, historiecomponent |
| Rolcontext | Actieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Content > Docent ondersteuning |
| Gerelateerde usecases | UC-BEH-DOCSUP-001, UC-BEH-DOCSUP-002, UC-BEH-DOCSUP-003, UC-BEH-DOCSUP-005, UC-BEH-DOCSUP-006, UC-BEH-DOCSUP-007, UC-BEH-DOCSUP-008, UC-BEH-DOCSUP-009, UC-BEH-DOCSUP-010, UC-BEH-DOCSUP-011, UC-BEH-DOCSUP-012, UC-BEH-DOCSUP-013, UC-BEH-DOCSUP-014 |
| Primaire entiteiten | Users, UserRoles, Roles, TeacherLevels, TeacherLevelCategories, TeacherLevelCategoryExercises, Exercises, ExerciseModules, ExerciseHistory, LevelCollaborators, LevelStudentAuthorizations, UserRelationships |
| Secundaire entiteiten / events | RelationshipEvents, SystemMessages, beheerlog, docentondersteuning-readmodels, autorisatiecomponent |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een beheerder vanuit de structuurboom het detailpaneel van één niveau binnen de geselecteerde docentcontext bekijkt.
Het niveaudetail toont minimaal naam, actuele eigenaar, aantal onderliggende categorieën, aantal onderliggende oefeningen, aantal leerlingen met toegang en aantal actieve collaborators.
Vanuit het niveaudetail mogen snelacties of doorklikacties beschikbaar zijn naar Leerlingtoegang, Collaborators en Eigenaar voor hetzelfde niveau. De detailweergave zelf voert geen mutatie uit.
Uitgangspunten
- Docentondersteuning werkt altijd vanuit één gekozen docentcontext.
- De beheerder heeft supportgerichte inzage, maar mutaties blijven beperkt tot expliciete beheeracties met audit.
- Centrale categorie- en module-identiteit worden niet vanuit deze pagina beheerd.
- Server-side autorisatie is leidend; clientstate mag geen objecttoegang afdwingen.
- Historische runs, resultaten en PDF-contexten worden niet herschreven.
3. Scope
Deze usecase beschrijft:
- Tonen van niveaudetailgegevens binnen één docentcontext.
- Tonen van eigenaar, aantallen categorieën, oefeningen, leerlingen met toegang en collaborators.
- Bieden van contextvaste doorklikacties naar Leerlingtoegang, Collaborators en Eigenaar.
- Blokkeren van toegang tot niveaus buiten de gekozen docentcontext.
- Aangeven of het niveau open, privé, actief of historisch/inactief is wanneer deze status beschikbaar is.
Deze usecase beschrijft niet:
- Centraal categoriebeheer; dat blijft bronhoudend in Beheerder / Categorieën beheren.
- Centraal technisch modulebeheer; dat blijft bronhoudend in Beheerder / Modules beheren.
- Volledig account- en rolbeheer; dat blijft bronhoudend in Beheerder / Accountbeheer.
- Reguliere docentflows vervangen; docentondersteuning is supportgericht en niet de primaire docentinterface.
- Live meekijken tijdens actieve oefeningen; beheerders mogen geschiedenis analyseren, maar niet live meekijken.
- Popupteksten, knopteksten of inputlabels specificeren; usecases verwijzen uitsluitend naar PopupKey.
3.1 Afbakening met aangrenzende domeinen
| Onderdeel | Afbakening |
|---|---|
| Docent / Oefenaanbod | Docenten beheren hun eigen niveaus, categorieën en oefeningen via de reguliere docentflows; docentondersteuning biedt beheerderinzage en gerichte correctie. |
| Beheerder / Categorieën beheren | Centrale categorie-identiteit, migratie en statuswijziging worden daar beheerd, niet in docentondersteuning. |
| Beheerder / Modules beheren | Technische modulemetadata en modulemigraties worden daar beheerd; docentondersteuning kan alleen concrete oefeningcontext inspecteren. |
| Beheerder / Accountbeheer | Rollen, accountstatus en account lifecycle horen daar; docentondersteuning gebruikt bestaande account- en relatiecontext. |
| Generiek / Relaties | Relaties en uitnodigingen blijven bronhoudend in het relatiedomein; docentondersteuning kan alleen bestaande geldige context gebruiken of een expliciete beheeractie auditen. |
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol ingelogd in OefenHub. |
| PRE-002 | De backend heeft server-side vastgesteld dat de gebruiker een actieve beheerderrol heeft. |
| PRE-003 | De beheerder bevindt zich binnen de beheeromgeving via Content > Docent ondersteuning. |
| PRE-004 | De pagina gebruikt actuele serverdata; clientstate, routeparameters of verborgen formuliervelden bepalen geen autorisatie, docentcontext, niveaucontext of oefeningcontext. |
| PRE-005 | De tab Structuur is geopend. |
| PRE-006 | Er is één niveau binnen de geselecteerde docentcontext gekozen. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet het detailpaneel voor het gekozen niveau. |
| POST-002 | De getoonde aantallen zijn server-side afgeleid. |
| POST-003 | Doorklikacties behouden hetzelfde LevelId en dezelfde docentcontext. |
| POST-004 | Geen niveaugegevens of autorisaties zijn gewijzigd. |
| POST-005 | Objecten buiten de docentcontext blijven onzichtbaar. |
6. Trigger
De usecase start wanneer de beheerder in de structuurboom een niveau selecteert.
7. Normale processtroom
| Stap | Actor | Component / context | Handeling | Resultaat | Belangrijke gegevens |
|---|---|---|---|---|---|
| 1 | Beheerder | Structuurboom | Klikt een niveau. | De frontend vraagt het niveaudetail op. | LevelId. |
| 2 | Backend | Autorisatiecomponent | Controleert beheerdercontext. | De aanvraag wordt geautoriseerd. | Server-side rolcontext. |
| 3 | Backend | DocentContextService | Valideert LevelId binnen docentcontext. | Alleen passend niveau wordt toegestaan. | TeacherLevels.OwnerUserId of supportcontext. |
| 4 | Backend | NiveauReadModel | Laadt niveaugegevens en eigenaar. | Naam, status en eigenaar worden bepaald. | TeacherLevels, Users. |
| 5 | Backend | NiveauReadModel | Berekent aantallen. | Categorieën, oefeningen, leerlingen en collaborators worden geteld. | TeacherLevelCategories, Exercises, autorisaties, LevelCollaborators. |
| 6 | Frontend | Detailpaneel | Toont niveaudetail. | De beheerder ziet readonly detail en doorklikacties. | Contextpaneel. |
8. Alternatieve en exceptionele processtromen
| Stap | Situatie | Afhandeling | PopupKey | Datamutatie |
|---|---|---|---|---|
| 2 | Beheerdercontext is ongeldig. | De backend weigert de actie en toont een veilige blokkade. | POP-BEH-DOCSUP-NO-ACCESS | Geen. |
| 3 | De geselecteerde docent bestaat niet of is niet toegankelijk. | De ondersteuningsweergave wordt niet geopend of wordt veilig teruggezet naar het overzicht. | POP-BEH-DOCSUP-SAVE-ERROR | Geen. |
| 4 | Het gekozen object bestaat niet meer. | De pagina toont dat het object niet beschikbaar is en ververst de context. | Niet van toepassing | Geen. |
| 5 | De readmodeldata is tijdelijk incompleet. | De beschikbare gegevens worden getoond met veilige ontbrekend-status; ontbrekend wordt niet als nul geïnterpreteerd. | Niet van toepassing | Geen. |
| 6 | De beheerder gebruikt een oude route of clientstate. | De backend negeert de clientcontext en herleidt de actuele context opnieuw. | Niet van toepassing | Geen. |
9. Business rules
| ID | Business rule |
|---|---|
| BR-UC-BEH-DOCSUP-004-001 | Een niveaudetail mag alleen worden getoond wanneer het niveau binnen de gekozen docentcontext valt. |
| BR-UC-BEH-DOCSUP-004-002 | De actuele eigenaar wordt expliciet zichtbaar gemaakt. |
| BR-UC-BEH-DOCSUP-004-003 | Leerlingtoegang en collaborators worden als aantallen getoond en via aparte tabs beheerd. |
| BR-UC-BEH-DOCSUP-004-004 | Eigendomsoverdracht gebeurt niet vanuit het readonly niveaudetail maar via de tab Eigenaar. |
| BR-UC-BEH-DOCSUP-004-005 | Historische of inactieve niveaus mogen niet als actief beheerbaar worden gepresenteerd. |
| BR-UC-BEH-DOCSUP-004-006 | De detailweergave maakt geen niveau, categorie of autorisatie aan. |
10. Datavalidatie
| ID | Validatie |
|---|---|
| VAL-UC-BEH-DOCSUP-004-001 | LevelId is verplicht. |
| VAL-UC-BEH-DOCSUP-004-002 | LevelId moet binnen de gekozen docentcontext vallen. |
| VAL-UC-BEH-DOCSUP-004-003 | Eigenaar moet server-side worden opgehaald. |
| VAL-UC-BEH-DOCSUP-004-004 | Aantallen worden server-side berekend. |
| VAL-UC-BEH-DOCSUP-004-005 | Doorklikacties moeten hetzelfde LevelId gebruiken en opnieuw valideren. |
| VAL-UC-BEH-DOCSUP-004-006 | Routeparameters mogen geen niveau buiten de context openen. |
11. Datamutaties en events
| Object / event | Mutatie |
|---|---|
| Geen functionele mutatie | Deze usecase raadpleegt of navigeert zonder inhoudelijke domeinwijziging. |
| Geen event | Er wordt geen historyrecord geschreven voor alleen raadplegen. |
12. Geen datamutaties
| Object | Waarom geen mutatie |
|---|---|
| Users | Alleen gelezen voor actor- en docentcontext. |
| TeacherLevels | Alleen gelezen tenzij deze usecase expliciet anders beschrijft. |
| TeacherLevelCategories | Alleen gelezen tenzij deze usecase expliciet anders beschrijft. |
| TeacherLevelCategoryExercises | Alleen gelezen tenzij deze usecase expliciet anders beschrijft. |
| Exercises | Alleen gelezen tenzij deze usecase expliciet anders beschrijft. |
| ExerciseRuns | Historische runs worden nooit herschreven. |
13. State diagram
Niet van toepassing.
Deze usecase wijzigt geen persistent statusobject. De getoonde selectie-, detail-, zoek- of navigatietoestand is uitsluitend tijdelijke UI-state binnen de beheerderweergave en wordt niet als domeinstatus opgeslagen.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
| PopupKey | Gebruik |
|---|---|
| Niet van toepassing | Deze usecase gebruikt geen popupregister-popup. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Onderdeel | Afleiding |
|---|---|
| Functioneel Ontwerp | FO beschrijft dat een klik op niveau een detailweergave opent met eigenaar, aantallen en doorklikacties. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, oefencatalogus, relatiebeheer en logging en historie beschrijven de technische uitwerking. TO vereist LevelId-validatie binnen docentcontext en server-side tellingen. |
| Software Requirements Specification | SRS moet de zichtbare niveauvelden en definities van aantallen vastleggen. |
| Database | Leest TeacherLevels, Users, TeacherLevelCategories, Exercises, autorisaties en LevelCollaborators; schrijft niets. |
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-DOCSUP-004-001 | SRS-CAT-001 SRS-TCH-002 SRS-ADM-001 AC-CAT-001 AC-TCH-002 AC-ADM-001 | Niveaudetails alleen tonen voor niveaus binnen de gekozen docentcontext |
REQ-UC-BEH-DOCSUP-004-002 | SRS-CAT-001 SRS-ADM-008 SRS-ADM-001 AC-CAT-001 AC-ADM-008 AC-ADM-001 | Eigenaar, niveaugegevens en supportaantallen tonen |
REQ-UC-BEH-DOCSUP-004-003 | SRS-AUTH-001 SRS-RDM-001 SRS-RDM-002 SRS-ADM-001 AC-AUTH-001 AC-RDM-001 AC-RDM-002 AC-ADM-001 | Aantallen server-side afleiden |
REQ-UC-BEH-DOCSUP-004-004 | SRS-AUTH-001 SRS-LRN-009 SRS-TCH-006 SRS-ADM-001 AC-AUTH-001 AC-LRN-009 AC-TCH-006 AC-ADM-001 | Doorklikacties naar Leerlingtoegang, Collaborators en Eigenaar contextvast aanbieden |
REQ-UC-BEH-DOCSUP-004-005 | SRS-AUTH-001 SRS-CAT-001 SRS-ADM-001 AC-AUTH-001 AC-CAT-001 AC-ADM-001 | Bij bekijken van het niveaudetail geen niveau of autorisatie wijzigen |
REQ-UC-BEH-DOCSUP-004-006 | SRS-CAT-004 SRS-ADM-001 AC-CAT-004 AC-ADM-001 | Historische of inactieve niveaus herkenbaar presenteren |
REQ-UC-BEH-DOCSUP-004-007 | SRS-AUTH-001 SRS-CAT-001 SRS-ADM-001 AC-AUTH-001 AC-CAT-001 AC-ADM-001 | Toegang tot niveaus buiten de context blokkeren |