UC-DOC-LLN-004 - Niveau-autorisaties van leerling bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-LLN-004 |
| Naam | Niveau-autorisaties van leerling bekijken |
| Domein | Docent |
| Subdomein | Leerlingen en niveau-autorisaties |
| Primaire actor | Docent |
| Secundaire actor(en) | Systeem |
| Rolcontext | Actieve docentcontext met bestaande docent-leerlingrelatie of toegestane inzage op de eigen docentdataset |
| Betrokken schermen | Docent - Leerling autorisaties |
| Gerelateerde usecases | UC-DOC-LLN-001, UC-DOC-LLN-003, UC-DOC-LLN-005, UC-DOC-LLN-006, UC-DOC-LLN-007, UC-LLN-TOEG-001, UC-LLN-TOEG-002 |
| Primaire entiteiten | Users, UserRelationships, TeacherStudentLevelAccess, TeacherLevels |
| Secundaire entiteiten / events | Autorisatie-readmodel, actieve niveaus, ingetrokken eigen autorisaties, contextuele auditregels |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een docent voor één geselecteerde leerling bekijkt welke niveaus binnen de eigen docentcontext geautoriseerd zijn. Het gaat om een read-only inzageflow; het wijzigen van autorisaties gebeurt in vervolgusecases.
Deze usecase maakt expliciet onderscheid tussen de docentcontext als zichtbare werkcontext en het onderliggende generieke relatiedomein. De docent mag in deze flow alleen gegevens zien die voortkomen uit de eigen actieve relatie- en niveauautorisatiecontext. Informatie over andere docenten, andere docentrelaties of niet-relevante accountgegevens blijft buiten beeld.
De usecase is onderdeel van het docentdomein, maar dupliceert geen generieke relatie-, profiel-, account- of berichtprocessen. Waar vervolgacties nodig zijn, verwijst de usecase naar de bronhoudende usecases in het betreffende domein.
3. Scope
3.1 Binnen scope
- Openen van het individuele autorisatiescherm voor één leerling.
- Server-side controleren van docent-leerlingrelatie.
- Tonen welke niveaus door deze docent aan de leerling zijn geautoriseerd.
- Tonen welke relevante niveaus nog niet gekoppeld zijn wanneer dit als keuzecontext nodig is.
- Tonen van eigen audit- of wijzigingscontext voor deze docent-leerlingcombinatie.
- Duidelijk scheiden van inzage en vervolgacties voor wijziging.
3.2 Buiten scope
- Autorisaties opslaan of wijzigen.
- Bulk-autorisaties uitvoeren.
- Systeemberichten versturen naar de leerling.
- Niveaus aanmaken of beheren.
- Autorisaties van andere docenten tonen.
- Relatie-uitnodigingen of docent-leerlingrelaties aanmaken.
3.3 DRY-afbakening
- De docent ziet uitsluitend leerlingen binnen de eigen docentcontext.
- Een actieve docent-leerlingrelatie is de basis voor zichtbaarheid in dit subdomein.
- Niveau-autorisaties worden vastgelegd via
TeacherStudentLevelAccessen blijven gescheiden van de relatietabel. - Een collaborator op een niveau krijgt hierdoor geen toegang tot leerlingen, resultaten, geschiedenis of live meekijken.
- Zoeken, filteren, paginering en tellingen zijn afgeleide readmodelwaarden en veroorzaken geen datamutaties.
- Gegevens over andere docentrelaties van dezelfde leerling worden niet zichtbaar gemaakt aan de docent.
- Account-, profiel-, relatie- en systeemnotificatieflows blijven bronhoudend in hun eigen domeinen.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol ingelogd. |
| PRE-002 | De gebruiker heeft een actieve docentrol. |
| PRE-003 | De OefenHub-sessiecontext is server-side opgebouwd. |
| PRE-004 | De docentcontext is beschikbaar en geldig. |
| PRE-005 | De betrokken leerlinggegevens worden uitsluitend via geautoriseerde backendqueries opgehaald. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De gevraagde docentcontextweergave is getoond of veilig geblokkeerd. |
| POST-002 | Er zijn geen datamutaties uitgevoerd binnen deze inzageflow. |
| POST-003 | De docent heeft geen gegevens buiten de eigen docentcontext gezien. |
| POST-004 | Vervolgacties worden alleen als route of actie aangeboden en voeren nog geen wijziging uit. |
6. Trigger
De docent kiest bij een leerling de actie Autorisaties.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Docent | Leerlingenoverzicht | Klikt op Autorisaties bij een leerling | Frontend opent autorisatiescherm | StudentUserId |
| 2 | Systeem | Routeguard | Controleert docentrol | Blokkeert zonder actieve docentrol | UserRoles |
| 3 | Systeem | Relatieservice | Controleert actieve docent-leerlingrelatie | Bepaalt toegestane context | UserRelationships |
| 4 | Systeem | Niveaureadmodel | Haalt niveaus van deze docent op | Geeft relevante niveaus terug | TeacherLevels.OwnerTeacherUserId |
| 5 | Systeem | Autorisatiereadmodel | Haalt actieve autorisaties voor leerling op | Markeert geautoriseerde niveaus | TeacherStudentLevelAccess.IsActive = true |
| 6 | Systeem | Autorisatiereadmodel | Haalt ingetrokken eigen autorisaties op indien nodig | Toont alleen relevante eigen historie | RevokedAtUtc, RevokedByUserId |
| 7 | Frontend | Autorisatiescherm | Rendert autorisatielijst | Toont actieve en niet-actieve keuzecontext | Geen andere docenten |
| 8 | Docent | Autorisatiescherm | Bekijkt autorisaties | Geen datamutatie | Read-only |
| 9 | Frontend | Acties | Toont toegestane vervolgacties | Wijzigacties starten vervolgusecases | UC-DOC-LLN-005/006/007 |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Gebruiker heeft geen docentrol | Systeem blokkeert het autorisatiescherm. | Niet van toepassing | Geen |
| ALT-002 | 3 | Geen actieve docent-leerlingrelatie | Systeem toont geen autorisatiegegevens. | Niet van toepassing | Geen |
| ALT-003 | 4 | Docent heeft geen actieve niveaus | Systeem toont lege niveaucontext en geen koppelbare niveaus. | Niet van toepassing | Geen |
| ALT-004 | 5 | Leerling heeft geen actieve autorisaties bij deze docent | Systeem toont dat geen niveau is gekoppeld binnen deze docentcontext. | Niet van toepassing | Geen |
| ALT-005 | 5 | Leerling heeft autorisaties via andere docenten | Systeem toont deze niet. | Niet van toepassing | Geen |
| ALT-006 | 6 | Audit bevat acties van andere docenten | Systeem toont deze niet in het individuele docentscherm. | Niet van toepassing | Geen |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Een docent ziet alleen niveau-autorisaties die door deze docentcontext relevant zijn. |
| BR-002 | Andere docenten en hun autorisaties worden niet getoond. |
| BR-003 | Het individuele autorisatiescherm blijft bestaan als secundaire route voor uitzonderingen, controles en kleine correcties. |
| BR-004 | Autorisatie-audit op dit scherm toont uitsluitend relevante acties van de huidige docent richting deze leerling. |
| BR-005 | Het bekijken van autorisaties wijzigt geen TeacherStudentLevelAccess-records. |
| BR-006 | Een leerling kan meerdere niveaus tegelijk geautoriseerd hebben. |
| BR-007 | Nieuw toegevoegde actieve oefeningen binnen een geautoriseerd niveau worden automatisch beschikbaar voor de leerling. |
| BR-008 | De daadwerkelijke wijziging van autorisaties hoort bij aparte wijzig-usecases. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| StudentUserId | Moet binnen actieve docent-leerlingrelatie vallen. |
| TeacherLevelId | Moet behoren tot de relevante docentcontext. |
| TeacherStudentLevelAccess | Alleen records binnen deze docent-leerlingrelatie worden getoond. |
| Auditweergave | Mag uitsluitend relevante acties binnen deze docentcontext tonen. |
| Wijzigacties | Mogen pas in vervolgusecases muteren na aparte validatie. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| - | - | Niet van toepassing | Deze usecase is read-only en voert geen datamutaties uit. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| TeacherStudentLevelAccess | Deze usecase leest autorisaties maar wijzigt ze niet. |
| SystemMessages | Bekijken van autorisaties verstuurt geen bericht. |
| TeacherLevels | Niveaus worden niet aangemaakt of aangepast. |
| UserRelationships | Relaties worden niet gewijzigd. |
| PrivateMessages | Deze docent-inzageflow start geen privébericht. |
| SystemMessages | Systeemberichten worden alleen aangemaakt in expliciete communicatieflows. |
| LiveViewAudit | Live meekijken wordt niet gestart in deze usecase. |
13. State diagram
Deze usecase wijzigt geen persistent statusobject. De zichtbaarheid en de getoonde gegevens worden afgeleid uit actieve rollen, actieve docent-leerlingrelaties, niveaucontext en eventuele niveau-autorisaties. Er is daarom geen state diagram van een persistent object opgenomen.
14. Decision flow
15. Data lifecycle diagram
Deze usecase maakt geen nieuwe lifecycleobjecten aan. Autorisaties worden uitsluitend gelezen en vertaald naar een contextgebonden overzicht.
16. Sequence diagrammen
16.1 Niveau-autorisaties lezen
16.2 Wijzigactie wordt apart afgehandeld
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Gehele usecase | Deze flow gebruikt geen domeinspecifieke popupregister-popup. Routeguard-, validatie-, lege-staat- en niet-beschikbaarafhandeling verlopen via componentmelding of bestaande generieke foutafhandeling. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft de docent-leerlingenpagina als contextgebonden overzicht waarin alleen leerlingen en leerlinginformatie binnen de eigen docentcontext zichtbaar zijn. |
| Functioneel Ontwerp | Beschrijft dat zoeken, filteren, detailweergave en autorisatie-inzage geen gegevens van andere docenten tonen. |
| Technisch Ontwerp | Technisch Ontwerp: autorisatie en contextcontrole, technische rolflows, relatiebeheer en readmodels en tellers beschrijven de technische uitwerking. Beschrijft server-side filtering op actieve docent-leerlingrelatie, actieve docentrol en TeacherStudentLevelAccess uit. |
| Technisch Ontwerp | Technisch Ontwerp: autorisatie en contextcontrole, technische rolflows, relatiebeheer en readmodels en tellers beschrijven de technische uitwerking. Beschrijft dat routeparameters en clientstate nooit leidend zijn voor zichtbaarheid. |
| Software Requirements Specification | Beschrijft requirements voor contextbeperkte inzage, read-only gedrag, paginering en privacygrenzen. |
| Database-informatie | Geen nieuwe tabel nodig; gebruik bestaande Users, UserRelationships, TeacherLevels en TeacherStudentLevelAccess. |
| Ontwerpbronnen | Beschrijven business rules, autorisatiematrix, domeinobjecten en usecase-matrices bij. |
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-DOC-LLN-004-001 | SRS-AUTH-001 SRS-CAT-001 SRS-LRN-009 SRS-TCH-003 AC-AUTH-001 AC-CAT-001 AC-LRN-009 AC-TCH-003 | Niveau-autorisaties per leerling kunnen tonen binnen de actieve docentcontext |
REQ-UC-DOC-LLN-004-002 | SRS-AUTH-001 SRS-CAT-001 SRS-TCH-002 AC-AUTH-001 AC-CAT-001 AC-TCH-002 | Actieve autorisaties en relevante beschikbare niveaus onderscheiden |
REQ-UC-DOC-LLN-004-003 | SRS-AUTH-001 SRS-TCH-001 AC-AUTH-001 AC-TCH-001 | Geen autorisaties van andere docenten tonen |
REQ-UC-DOC-LLN-004-004 | SRS-AUTH-001 SRS-TCH-001 AC-AUTH-001 AC-TCH-001 | Bij inzage geen autorisatierecords wijzigen |
REQ-UC-DOC-LLN-004-005 | SRS-AUTH-001 SRS-TCH-001 AC-AUTH-001 AC-TCH-001 | Wijzigacties pas via aparte autorisatie-usecases verwerken |