Skip to main content

UC-DOC-LLN-007 - Bulk niveau-autorisaties beheren

1. Kerngegevens

VeldWaarde
Usecase-IDUC-DOC-LLN-007
NaamBulk niveau-autorisaties beheren
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 meerdere leerlingen tegelijk aan een niveau koppelt of van een niveau ontkoppelt via een bulkweergave met beschikbare leerlingen links en reeds gekoppelde leerlingen rechts. De flow bundelt meerdere autorisatiewijzigingen in één beheerhandeling, maar behoudt per leerling afzonderlijke validatie, mutatie en communicatie-afleiding.

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

  • Openen van het bulk-autorisatiescherm voor één geselecteerd niveau.
  • Tonen van beschikbare leerlingen en gekoppelde leerlingen in gescheiden lijsten.
  • Zoeken, filteren en selecteren binnen grotere aantallen leerlingen.
  • Koppelen van meerdere geselecteerde leerlingen aan het niveau.
  • Ontkoppelen van meerdere geselecteerde leerlingen van het niveau.
  • Per leerling valideren of de wijziging toegestaan is.
  • Per leerling vastleggen van autorisatiewijziging en communicatiebehoefte.

3.2 Buiten scope

  • Aanmaken van nieuwe docent-leerlingrelaties.
  • Wijzigen van niveau-inhoud of oefeningconfiguratie.
  • Tonen van uitgebreide leerlingdetails of geschiedenis.
  • Verzenden van privéberichten.
  • Beheerderondersteuning of forceeracties.

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 opent het bulk-autorisatiescherm voor een geselecteerd niveau en voert één of meer koppel- of ontkoppelacties uit.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1DocentNiveaucontextOpent bulk-autorisaties voor niveauFrontend laadt bulkweergaveTeacherLevelId
2SysteemRouteguardControleert docentrol en niveaucontextBlokkeert zonder rechtenUserRoles, TeacherLevels
3SysteemRelatieserviceHaalt koppelbare leerlingen opVult beschikbare lijstActieve docent-leerlingrelaties
4SysteemAutorisatieserviceHaalt huidige autorisaties opVult gekoppelde lijstTeacherStudentLevelAccess.IsActive = true
5FrontendBulkweergaveToont twee lijsten en zoekmogelijkhedenDocent kan leerlingen selecterenOngeveer 10 namen compact zichtbaar
6DocentBulkweergaveSelecteert leerlingen links of rechtsKoppel/ontkoppelactie wordt actiefSelectiecontext
7DocentBulkweergaveKlikt Koppel geselecteerd of Ontkoppel geselecteerdFrontend stuurt bulkverzoekActietype + geselecteerde leerlingen
8SysteemBulkserviceValideert per leerlingSplitst geldige en ongeldige regelsPer-student server-side validatie
9SysteemDatabaseVoert geldige autorisatiewijzigingen uitSlaat mutaties per leerling opTeacherStudentLevelAccess
10SysteemAudit/eventlaagRegistreert wijzigingen per leerlingLegt bulkactie en individuele effecten vastStudentLevelAccessBulkChanged
11SysteemCommunicatievoorbereidingRegistreert communicatie per getroffen leerlingVerwijst naar UC-DOC-LLN-008Geen SystemMessage in deze usecase
12FrontendBulkweergaveVerverst beide lijstenToont resultaat van de actieGedeeltelijke successen herkenbaar

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Docent mag niveau niet beherenSysteem blokkeert de bulkweergave.Niet van toepassingGeen
ALT-0023Geen koppelbare leerlingen beschikbaarSysteem toont lege beschikbare lijst.Niet van toepassingGeen
ALT-0034Geen leerlingen zijn gekoppeldSysteem toont lege gekoppelde lijst.Niet van toepassingGeen
ALT-0048Een of meer geselecteerde leerlingen zijn inmiddels niet meer koppelbaarSysteem slaat geldige regels op en rapporteert geweigerde regels.Niet van toepassingGedeeltelijk
ALT-0058Selectie bevat dubbele of reeds verwerkte leerlingenSysteem dedupliceert of behandelt idempotent.Niet van toepassingGeen dubbele mutatie
ALT-0069Transactie faalt volledigSysteem rolt alle wijzigingen terug en toont actuele toestand na herladen.Niet van toepassingRollback

9. Business rules

IDRegel
BR-001Bulkbeheer werkt altijd binnen precies één geselecteerd niveau.
BR-002Alle geselecteerde leerlingen moeten per leerling binnen de actieve docent-leerlingcontext vallen.
BR-003Een bulkactie mag geen docent-leerlingrelaties aanmaken.
BR-004Koppelen en ontkoppelen blijven per leerling herleidbare autorisatiewijzigingen.
BR-005Een gedeeltelijk geldig bulkverzoek mag alleen geldige regels verwerken wanneer dat functioneel en technisch veilig rapporteerbaar is.
BR-006Beschikbare en gekoppelde lijsten zijn readmodelweergaven en geen aparte opslagbron.
BR-007Zoeken en paginering in bulkbeheer veroorzaken geen datamutaties.
BR-008Elke getroffen leerling moet via de communicatieflow geïnformeerd kunnen worden.
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
9Bulk update/createTeacherStudentLevelAccessMeerdere autorisaties worden aangemaakt, heractiveerd of ingetrokken.
10EventStudentLevelAccessBulkChangedBulkactie is uitgevoerd met individuele effecten.
11VervolgactieAuthorizationChangeCommunicationRequestedCommunicatie per getroffen leerling moet worden verwerkt via UC-DOC-LLN-008.

12. Geen datamutaties

EntiteitReden
UserRelationshipsBulkbeheer maakt geen nieuwe relaties.
TeacherLevelsHet geselecteerde niveau wordt niet inhoudelijk gewijzigd.
ExercisesOefeninhoud wijzigt niet.
SystemMessagesBerichten worden niet in deze usecase zelf gedetailleerd opgebouwd.
PrivateMessagesGeen privécommunicatie.

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 Bulkmutatie uitvoeren

16.2 Volledige blokkade

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-007-001SRS-AUTH-001
SRS-AUTH-004
SRS-CAT-001
SRS-TCH-008
SRS-ADM-001
AC-AUTH-001
AC-AUTH-004
AC-CAT-001
AC-TCH-008
AC-ADM-001
Bulkbeheer van niveau-autorisaties ondersteunen voor één geselecteerd niveau
REQ-UC-DOC-LLN-007-002SRS-LRN-009
SRS-TCH-001
AC-LRN-009
AC-TCH-001
Beschikbare en gekoppelde leerlingen gescheiden tonen
REQ-UC-DOC-LLN-007-003SRS-AUTH-001
SRS-TCH-008
AC-AUTH-001
AC-TCH-008
Elke bulkregel server-side valideren binnen de docentcontext
REQ-UC-DOC-LLN-007-004SRS-AUTH-001
SRS-TCH-008
AC-AUTH-001
AC-TCH-008
Dubbele actieve autorisaties voorkomen bij bulkacties
REQ-UC-DOC-LLN-007-005SRS-LRN-009
SRS-TCH-008
SRS-NFR-AUD-001
AC-LRN-009
AC-TCH-008
AC-NFR-AUD-001
Bulkmutaties herleidbaar vastleggen met individuele effecten per leerling
REQ-UC-DOC-LLN-007-006SRS-LRN-009
SRS-TCH-008
AC-LRN-009
AC-TCH-008
Na bulkmutaties communicatie richting getroffen leerlingen kunnen initiëren