Skip to main content

UC-DOC-LLN-005 - Leerling aan niveau koppelen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-DOC-LLN-005
NaamLeerling aan niveau koppelen
DomeinDocent
SubdomeinLeerlingen en niveau-autorisaties
Primaire actorDocent
Secundaire actor(en)Systeem, Leerling
RolcontextActieve docentcontext met geldige docentrol, relevante docent-leerlingrelatie en toegestane niveaucontext
Betrokken schermenDocent - Leerlingen, Docent - Autorisaties, Docent - Niveau-autorisaties beheren
Gerelateerde usecasesUC-DOC-LLN-001, UC-DOC-LLN-002, UC-DOC-LLN-003, UC-DOC-LLN-004, UC-DOC-LLN-008, UC-LLN-TOEG-001, UC-LLN-TOEG-002, UC-LLN-TOEG-003
Primaire entiteitenUsers, UserRoles, Roles, UserRelationships, TeacherLevels, TeacherStudentLevelAccess
Secundaire entiteiten / eventsSystemMessages, autorisatie-events, leerlingtoegangs-readmodel, audit/logging
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een docent een gekoppelde leerling toegang geeft tot een niveau binnen de eigen docentcontext. De flow maakt een actieve niveau-autorisatie aan of heractiveert een eerder ingetrokken autorisatie wanneer dat volgens de business rules veilig en eenduidig kan.

De usecase blijft bewust binnen het docentdomein. Relatievorming, profielbeheer, accounttoegang, leerlingfrontpagegedrag en generieke berichtafhandeling worden niet opnieuw als bronwaarheid beschreven. Deze flow gebruikt die domeinen alleen als randvoorwaarde of vervolgcontext.

Alle beslissingen die zichtbaarheid of wijzigbaarheid bepalen, worden server-side opnieuw gecontroleerd. Een selectie in de frontend, een oude route of een eerder geladen readmodel mag nooit zelfstandig bepalen dat een docent een leerling of niveau mag wijzigen.

3. Scope

3.1 Binnen scope

  • Selecteren van een leerling binnen de eigen docentcontext.
  • Selecteren van een niveau waarvoor de docent autorisatiebeheer mag uitvoeren.
  • Server-side controleren van docentrol, docent-leerlingrelatie en niveau-eigenaarschap of geldige beheerscontext.
  • Aanmaken of activeren van TeacherStudentLevelAccess voor de gekozen leerling en het gekozen niveau.
  • Vastleggen van actor, tijdstip en functionele context van de autorisatiewijziging.
  • Voorbereiden van communicatie aan de leerling via de aparte communicatie-usecase.

3.2 Buiten scope

  • Aanmaken van een docent-leerlingrelatie.
  • Accepteren of afwijzen van relatie-uitnodigingen.
  • Wijzigen van niveau-inhoud, categorieën of oefeningen.
  • Automatisch kiezen van het actieve niveau in het leerlingprofiel.
  • Inhoudelijk tonen van leerlingresultaten.
  • Beheerderondersteuning buiten docentcontext.

3.3 DRY-afbakening

  • De docent-leerlingrelatie zelf blijft bronhoudend in het generieke relatiedomein.
  • De leerlingzijde van zichtbaarheid en starten van oefeningen blijft bronhoudend in het leerlingdomein.
  • Systeemberichten worden functioneel gebruikt als communicatiekanaal, maar de mailbox- en leesstatusregels blijven bronhoudend in het generieke berichtendomein.
  • Collaboratorrechten geven geen automatische toegang tot leerlingen, resultaten, geschiedenis of live meekijken.
  • Niveau-autorisaties zijn gescheiden van rollen, relaties en profielinstellingen.
  • Historische resultaten worden niet herschreven door autorisatiewijzigingen.
  • Samenvattingen, lijsten en aantallen zijn afgeleide readmodelwaarden en vormen geen tweede bron van waarheid.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is succesvol ingelogd.
PRE-002De gebruiker heeft een actieve docentrol.
PRE-003De OefenHub-sessiecontext is server-side opgebouwd.
PRE-004De docentcontext en relevante niveaucontext zijn beschikbaar.
PRE-005De betrokken leerling valt binnen een actieve docent-leerlingrelatie wanneer een leerlingmutatie wordt uitgevoerd.
PRE-006De backend kan actuele autorisatiegegevens ophalen voordat een wijziging wordt verwerkt.

5. Post-condities

IDResultaat
POST-001De autorisatie- of communicatiehandeling is uitgevoerd of veilig geblokkeerd.
POST-002De docent heeft geen gegevens buiten de eigen docentcontext gewijzigd of gezien.
POST-003Alle uitgevoerde mutaties zijn herleidbaar vastgelegd waar dat voor deze flow geldt.
POST-004Afgeleide leerlingtoegang kan na de mutatie opnieuw correct worden bepaald.
POST-005Vervolgcommunicatie of vervolgtoegang wordt in de daarvoor bedoelde usecases afgehandeld.

6. Trigger

De docent kiest binnen het autorisatiescherm of bulk-autorisatiescherm voor het koppelen van een leerling aan een niveau.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1DocentAutorisatieschermSelecteert leerling en niveauFrontend start koppelactieStudentUserId, TeacherLevelId
2FrontendRouteguardStuurt verzoek naar backendBackend voert server-side controle uitClientselectie is niet leidend
3SysteemAutorisatieserviceControleert actieve docentrolBlokkeert zonder docentrolUserRoles, Roles
4SysteemRelatieserviceControleert actieve docent-leerlingrelatieBepaalt of leerling koppelbaar isUserRelationships.IsActive = true
5SysteemNiveauserviceControleert niveaucontextBepaalt of docent niveau mag beherenTeacherLevels, eigenaar/beheerscontext
6SysteemAutorisatieserviceControleert bestaande autorisatieVoorkomt dubbele actieve koppelingTeacherStudentLevelAccess
7SysteemDatabaseMaakt of heractiveert autorisatieSlaat actieve toegang opIsActive = true, GrantedAtUtc, GrantedByUserId
8SysteemAudit/eventlaagRegistreert autorisatiewijzigingLegt wijziging herleidbaar vastStudentLevelAccessGranted
9SysteemCommunicatievoorbereidingRegistreert dat leerling geïnformeerd moet wordenVerwijst naar UC-DOC-LLN-008Geen SystemMessage in deze usecase
10FrontendAutorisatieschermToont bijgewerkte toestandLeerling staat als gekoppeld aan niveauReadmodel vernieuwd

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0013Gebruiker heeft geen actieve docentrolSysteem blokkeert de koppelactie.Niet van toepassingGeen
ALT-0024Leerling heeft geen actieve docent-leerlingrelatie met deze docentSysteem weigert de koppeling en toont geen leerlinggegevens buiten context.Niet van toepassingGeen
ALT-0035Niveau hoort niet bij de beheerscontext van de docentSysteem blokkeert de koppelactie.Niet van toepassingGeen
ALT-0046Er bestaat al een actieve autorisatie voor dezelfde leerling en hetzelfde niveauSysteem voert geen dubbele mutatie uit en ververst de bestaande toestand.Niet van toepassingGeen
ALT-0056Er bestaat een eerder ingetrokken autorisatieSysteem kan een nieuwe actieve autorisatie aanmaken of het record gecontroleerd heractiveren volgens datamodelkeuze.Niet van toepassingTeacherStudentLevelAccess
ALT-0067Opslaan faalt door gelijktijdige wijzigingSysteem breekt transactie af en laat de docent de actuele toestand opnieuw laden.Niet van toepassingRollback

9. Business rules

IDRegel
BR-001Een leerling kan alleen aan een niveau worden gekoppeld binnen een actieve docent-leerlingrelatie.
BR-002Een docent mag alleen autorisaties beheren binnen de eigen toegestane docentcontext.
BR-003Een collaborator op een niveau krijgt door de collaboratorstatus niet automatisch toegang tot leerlingen of autorisatiebeheer.
BR-004Voor dezelfde leerling en hetzelfde niveau mag niet meer dan één actieve niveau-autorisatie bestaan binnen dezelfde docentcontext.
BR-005Nieuw toegevoegde actieve oefeningen binnen het geautoriseerde niveau worden automatisch beschikbaar voor de leerling.
BR-006Een autorisatiewijziging verandert geen relatie, geen rol en geen profielinstelling.
BR-007De leerling moet over de autorisatiewijziging geïnformeerd worden via de daarvoor bedoelde communicatieflow.
BR-008Server-side autorisatiecontrole is leidend; clientselectie of routeparameters mogen geen toegang afdwingen.
BR-009Autorisatiebeheer is altijd docentcontextgebonden en mag geen informatie uit andere docentcontexten lekken.
BR-010Alle autorisatiekritieke beslissingen worden server-side genomen.
BR-011Een wijziging in niveau-autorisatie is geen wijziging van leerlingrol, accountstatus of relatie.
BR-012De actuele toestand na een mutatie is leidend boven eerder geladen clientstate.

10. Datavalidatie

Veld / objectValidatie
DocentrolMoet actief zijn op het moment van de handeling.
DocentcontextWordt server-side bepaald uit sessie, rollen, relaties en niveaucontext.
StudentUserIdMoet binnen de actieve docent-leerlingcontext vallen wanneer een leerling wordt gewijzigd.
TeacherLevelIdMoet bestaan, actief zijn en binnen de toegestane docentcontext vallen.
TeacherStudentLevelAccessMag niet leiden tot dubbele actieve autorisaties voor dezelfde context.
BulkselectieMag alleen geldige, dedupliceerde leerlingen bevatten.
CommunicatiecontextMag geen gegevens over andere docenten of andere autorisatiecontexten bevatten.
RouteparametersMogen geen wijziging afdwingen zonder server-side hercontrole.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
7Update/CreateTeacherStudentLevelAccessNieuwe actieve niveau-autorisatie of gecontroleerde heractivatie.
8EventStudentLevelAccessGrantedNiveau-autorisatie is toegekend.
9VervolgactieAuthorizationChangeCommunicationRequestedCommunicatie richting leerling moet worden verwerkt via UC-DOC-LLN-008.

12. Geen datamutaties

EntiteitReden
UserRelationshipsDe relatie wordt niet aangemaakt of gewijzigd; zij is een voorwaarde.
TeacherLevelsHet niveau zelf wordt niet gewijzigd.
ExercisesOefeningen worden niet aangepast; zichtbaarheid volgt afgeleid.
UserSettingsHet actieve niveau van de leerling wordt niet automatisch gewijzigd.
PrivateMessagesAutorisatiecommunicatie gebruikt geen privébericht.

13. State diagram

Deze usecase raakt de lifecycle van een niveau-autorisatie of de communicatie daarover. De autorisatie kent functioneel de toestanden niet aanwezig, actief en ingetrokken.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Leerling aan niveau koppelen

16.2 Dubbele koppeling voorkomen

17. Popupverwijzingen

PopupKeyMomentDoel
Niet van toepassingGehele usecaseDeze 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

DoeldocumentAfleiding
Functioneel OntwerpLegt vast hoe docenten niveau-autorisaties voor gekoppelde leerlingen beheren binnen de eigen docentcontext.
Technisch OntwerpTechnisch Ontwerp: autorisatie en contextcontrole, technische rolflows, relatiebeheer en readmodels en tellers beschrijven de technische uitwerking. Vertaalt de server-side validaties, transacties, idempotentie en communicatiekoppeling naar services en databasebewerkingen.
Software Requirements SpecificationLeidt requirements af voor contextcontrole, autorisatiemutaties, auditbaarheid, communicatie en afscherming van andere docentcontexten.
Database-informatieBepaalt aanscherpingen rond TeacherStudentLevelAccess, SystemMessages en afgeleide leerlingtoegang.
OntwerpbronnenRaakt business rules, autorisatiematrix, command-register, event-register en usecase-matrices voor muterende autorisatie- en communicatieflows.

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-DOC-LLN-005-001SRS-REL-001
SRS-CAT-001
SRS-LRN-009
SRS-TCH-003
AC-REL-001
AC-CAT-001
AC-LRN-009
AC-TCH-003
Een docent alleen leerlingen aan een niveau laten koppelen binnen een actieve docent-leerlingrelatie
REQ-UC-DOC-LLN-005-002SRS-AUTH-001
SRS-CAT-001
SRS-TCH-002
AC-AUTH-001
AC-CAT-001
AC-TCH-002
Server-side controleren of de docent het gekozen niveau mag beheren
REQ-UC-DOC-LLN-005-003SRS-AUTH-001
SRS-CAT-001
SRS-LRN-009
SRS-TCH-003
AC-AUTH-001
AC-CAT-001
AC-LRN-009
AC-TCH-003
Dubbele actieve autorisaties voor dezelfde leerling en hetzelfde niveau voorkomen
REQ-UC-DOC-LLN-005-004SRS-AUTH-001
SRS-TCH-001
SRS-NFR-AUD-001
AC-AUTH-001
AC-TCH-001
AC-NFR-AUD-001
Een succesvolle koppeling vastleggen in TeacherStudentLevelAccess of het equivalente autorisatiemodel
REQ-UC-DOC-LLN-005-005SRS-AUTH-001
SRS-TCH-001
SRS-NFR-AUD-001
AC-AUTH-001
AC-TCH-001
AC-NFR-AUD-001
Autorisatiewijzigingen herleidbaar vastleggen met actor en tijdstip
REQ-UC-DOC-LLN-005-006SRS-MSG-001
SRS-LRN-001
SRS-TCH-001
AC-MSG-001
AC-LRN-001
AC-TCH-001
Na succesvolle koppeling communicatie richting de leerling kunnen starten via de centrale systeemberichtenflow