Skip to main content

UC-LLN-TOEG-006 — Privéniveau gebruiken via autorisatie

1. Kerngegevens

VeldWaarde
Usecase-IDUC-LLN-TOEG-006
NaamPrivéniveau gebruiken via autorisatie
DomeinLeerling / Oefenaanbod en toegang
Primaire actorLeerling
Secundaire actor(en)OefenHub frontend, OefenHub backend, niveaucontextresolver, autorisatielaag, database, routeguard
RolcontextIngelogde leerling die een privéniveau gebruikt waarvoor een actieve docent-leerlingrelatie en actieve niveauautorisatie bestaan.
Betrokken schermenLeerling-frontpage, niveaukeuze, oefenaanbod, categorie- en oefeningenlijsten, oefeningroute.
Gerelateerde usecasesUC-LLN-TOEG-001 — Beschikbare categorieën bekijken; UC-LLN-TOEG-002 — Beschikbare oefeningen bekijken; UC-LLN-TOEG-003 — Oefeningstoegang controleren bij openen; UC-LLN-TOEG-004 — Toegang vervalt door ingetrokken autorisatie; UC-GEN-PROF-003 — Verplicht niveau instellen
Primaire entiteitenUsers, UserSettings, TeacherLevels, TeacherStudentLevelAccess, UserRelationships
Secundaire entiteiten / eventsTeacherLevelCategories, TeacherLevelCategoryExercises, Exercises, Categories
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een leerling een privéniveau gebruikt. Een privéniveau is niet vrij kiesbaar voor alle leerlingen. De leerling mag het niveau alleen gebruiken wanneer er een actieve docent- leerlingrelatie bestaat en binnen die relatie een actieve TeacherStudentLevelAccess voor het betreffende niveau is toegekend.

Het gebruiken van een privéniveau is dus geen relatieflow en geen autorisatiebeheerflow. De docent of beheerder heeft de toegang eerder toegekend in de daarvoor bedoelde processen. Deze usecase gebruikt die bestaande autorisatie als voorwaarde om de leerlingcontext, categorieën en oefeningen te tonen. Wanneer de autorisatie ontbreekt of vervallen is, wordt de context niet geladen.

Ook bij privéniveaus blijft de zichtbaarheid van categorieën en oefeningen afhankelijk van actieve onderliggende inhoud. Het feit dat de leerling toegang heeft tot het niveau betekent niet dat elke categorie of oefening binnen dat niveau zichtbaar of startbaar is.

3. Scope

Deze usecase omvat wel:

  • controleren dat een privéniveau toegankelijk is via actieve autorisatie
  • controleren van actieve docent-leerlingrelatie bij de autorisatie
  • gebruiken van het privéniveau als actieve leerlingcontext
  • tonen van actieve categorieën en oefeningen binnen dat niveau
  • opslaan van selected level wanneer de context geldig is
  • blokkeren wanneer autorisatie of relatie ontbreekt
  • opnieuw controleren bij oefeningroute of oude clientstate

Deze usecase omvat niet:

  • aanmaken van docent-leerlingrelaties
  • uitnodigen of accepteren van docenten
  • toekennen of intrekken van niveauautorisatie
  • beheren van niveau-inhoud
  • docent- of ouderinzage
  • starten van exercise runs
  • verplicht niveau instellen inhoudelijk uitwerken
  • systeemberichten over toekenning of intrekking maken

DRY-afbakening voor deze usecase: beheer van niveaus, categorieën, oefeningen, relaties en autorisaties blijft bij de daarvoor bedoelde docent-, beheerder-, profiel- en relatieusecases. Deze usecase gebruikt de uitkomst daarvan als toegangsvoorwaarde en maakt die processen niet opnieuw bronhoudend.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd als leerling.
PRE-002Het beoogde niveau is privé en actief.
PRE-003Er bestaat een actieve docent-leerlingrelatie tussen de leerling en de docentcontext van het niveau.
PRE-004Er bestaat een actieve TeacherStudentLevelAccess voor deze leerling en dit niveau.
PRE-005De backend kan relatie en autorisatie server-side controleren.

5. Post-condities

IDResultaat
POST-001Het privéniveau is als actieve leerlingcontext gebruikt wanneer autorisatie geldig is.
POST-002De leerling ziet alleen actieve categorieën en oefeningen binnen dat geautoriseerde niveau.
POST-003Ontbrekende of vervallen autorisatie blokkeert niveaugebruik.
POST-004Er is geen nieuwe relatie of autorisatie aangemaakt door het gebruiken van het niveau.
POST-005Oefening openen binnen het privéniveau blijft opnieuw controleplichtig.

6. Trigger

De usecase start wanneer een leerling een privéniveau kiest, wanneer een eerder geselecteerd privéniveau wordt geladen, of wanneer een route binnen een privéniveau wordt geopend.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1LeerlingNiveaukeuze / frontpageKiest of gebruikt een privéniveau.Frontend vraagt niveaucontext te activeren.Geen client-side autorisatie.
2FrontendNiveaucomponentStuurt niveaucontext naar backend.Backend gebruikt sessiecontext als bron.UserId uit sessie.
3BackendSessielaagControleert leerlingrol.Alleen leerlingcontext gaat verder.Rolcontrole.
4BackendNiveaudataControleert dat niveau bestaat, actief en privé is.Niveau moet geldig zijn.TeacherLevels.
5BackendRelatiecontroleControleert actieve docent-leerlingrelatie.Zonder actieve relatie geen privéniveautoegang.UserRelationships.
6BackendAutorisatiecontroleControleert actieve TeacherStudentLevelAccess.Toegang tot niveau wordt toegestaan.IsActive = true.
7BackendGebruikersinstellingenSlaat of gebruikt niveaucontext volgens profielregels.Selected level blijft geldig zolang autorisatie actief is.UserSettings.SelectedTeacherLevelId.
8BackendOefenaanbodLaadt actieve categorieën en oefeningen binnen het niveau.Alleen actuele inhoud zichtbaar.UC-LLN-TOEG-001/002.
9FrontendLeerlingomgevingToont privéniveaucontext en oefenaanbod.Leerling kan verder naar oefeningen.Oefening openen opnieuw controleren.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0014Niveau is niet privé maar open.Systeem handelt af via UC-LLN-TOEG-005.Geen.Geen.
ALT-0024Niveau is inactief.Context wordt geweigerd.Geen popupregister-popup.Geen.
ALT-0035Docent-leerlingrelatie ontbreekt of is inactief.Privéniveau wordt niet geladen.Toegangafhandeling.Geen.
ALT-0046TeacherStudentLevelAccess ontbreekt.Privéniveau wordt niet geladen.Toegangafhandeling.Geen.
ALT-0056Autorisatie is ingetrokken.Systeem volgt UC-LLN-TOEG-004.Geen.Geen.
ALT-0067Selected level verwijst nog naar vervallen privéniveau.Systeem gebruikt de context niet en leidt naar keuze of lege staat.Geen.Geen.
ALT-0078Geen actieve categorieën of oefeningen.Privéniveau is toegankelijk maar toont lege oefenaanbodstaat.Leegstaatcomponent.Geen.

9. Business rules

IDRegel
BR-001Privéniveaugebruik vereist actieve docent-leerlingrelatie.
BR-002Privéniveaugebruik vereist actieve TeacherStudentLevelAccess.
BR-003Een leerling kan privéniveauautorisatie niet zelf aanmaken.
BR-004Een actieve niveauautorisatie geeft toegang tot het niveau, maar niet automatisch tot inactieve categorieën of oefeningen.
BR-005Selected level mag alleen naar een privéniveau verwijzen zolang de autorisatie actueel geldig is.
BR-006Collaboratorrechten op het niveau leveren geen leerlingtoegang op.
BR-007Bij beëindiging van relatie of autorisatie vervalt privéniveautoegang.
BR-008Oefening openen binnen het privéniveau blijft server-side controleplichtig.
BR-009Privéniveautoegang wijzigt geen ouder-/voogd- of docentinzage.
BR-010Deze usecase maakt geen systeembericht aan.

10. Datavalidatie

Veld / objectValidatie
PrivéniveauMoet actief bestaan en functioneel privé zijn.
Docent-leerlingrelatieMoet actief zijn en passen bij de docentcontext van het niveau.
TeacherStudentLevelAccessMoet actief zijn voor dezelfde leerling en hetzelfde niveau.
StudentUserIdMoet overeenkomen met de ingelogde leerling.
Selected levelMag alleen worden opgeslagen wanneer autorisatie geldig is.
Categorieën/oefeningenWorden na autorisatie nog apart actief gefilterd.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
4ReadTeacherLevelsNiveaugegevens en privéstatus worden gelezen.
5ReadUserRelationshipsDocent-leerlingrelatie wordt gecontroleerd.
6ReadTeacherStudentLevelAccessNiveauautorisatie wordt gecontroleerd.
7UpdateUserSettingsSelected level kan worden opgeslagen wanneer profielregels dit toestaan.
8ReadTeacherLevelCategories, TeacherLevelCategoryExercises, ExercisesActief oefenaanbod wordt bepaald.

Deze usecase introduceert geen nieuw persistent domeinevent. Privéniveautoegang wordt afgeleid uit actuele relatie- en autorisatierecords.

12. Geen datamutaties

EntiteitReden
UserRelationshipsPrivéniveau gebruiken maakt geen relatie aan.
TeacherStudentLevelAccessAutorisatie is al toegekend; deze usecase wijzigt die niet.
TeacherLevelsLeerling wijzigt het niveau niet.
ExercisesLeerling wijzigt oefeningen niet.
ExerciseRunsNog geen run aangemaakt.
SystemMessagesGeen bericht aangemaakt of gelezen.

13. State diagram

Niet van toepassing. Deze usecase raakt geen persistent statusobject met een eigen lifecycle. Toegang en zichtbaarheid worden afgeleid uit actuele niveaucontext, autorisaties, actieve relaties en contentstatussen.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyMomentDoel
Niet van toepassingNiet van toepassingDeze usecase gebruikt routeguard-, leegstaat- of componentgedrag en geen popupregister-popup.

18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification

DoeldocumentAfleiding
Functioneel OntwerpFunctioneel Ontwerp beschrijft zichtbaar oefenaanbod, niveaucontext, categorie-/oefeningtoegang en veilige blokkades.
Technisch OntwerpTechnisch Ontwerp: autorisatie en contextcontrole, oefencatalogus, readmodels en frontend-routing beschrijft de technische afbakening, server-side brondata, autorisatie en UI-compositie voor deze usecase.
Software Requirements SpecificationSoftware Requirements Specification bevat centrale eisen en acceptatiecriteria voor aanbodfiltering, server-side autorisatie, blokkades en geen ongewenste datamutaties.
Database-informatieDatabase-informatie blijft bron voor catalogus-, autorisatie- en soft-linkrelaties waarmee zichtbaar aanbod server-side wordt bepaald.
OntwerpbronnenOntwerpbronnen bevatten aanvullende businessregels voor oefenaanbod, niveaus, categorieën en autorisatiegrenzen.

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-LLN-TOEG-006-001SRS-REL-001
SRS-CAT-006
SRS-LRN-009
SRS-TCH-003
AC-REL-001
AC-CAT-006
AC-LRN-009
AC-TCH-003
Privéniveaugebruik alleen toestaan bij actieve docent-leerlingrelatie
REQ-UC-LLN-TOEG-006-002SRS-AUTH-001
SRS-CAT-006
SRS-LRN-009
AC-AUTH-001
AC-CAT-006
AC-LRN-009
Privéniveaugebruik alleen toestaan bij actieve niveauautorisatie
REQ-UC-LLN-TOEG-006-003SRS-AUTH-001
SRS-REL-001
SRS-CAT-006
SRS-LRN-009
AC-AUTH-001
AC-REL-001
AC-CAT-006
AC-LRN-009
Door privéniveaugebruik geen relatie of niveauautorisatie aanmaken
REQ-UC-LLN-TOEG-006-004SRS-AUTH-001
SRS-AUTH-004
SRS-CAT-006
SRS-LRN-009
AC-AUTH-001
AC-AUTH-004
AC-CAT-006
AC-LRN-009
Selected level ongeldig behandelen wanneer privéniveautoegang vervalt
REQ-UC-LLN-TOEG-006-005SRS-RDM-001
SRS-RDM-005
SRS-CAT-006
SRS-LRN-009
AC-RDM-001
AC-RDM-005
AC-CAT-006
AC-LRN-009
Actieve categorieën en oefeningen binnen een privéniveau apart filteren
REQ-UC-LLN-TOEG-006-006SRS-AUTH-001
SRS-LRN-009
SRS-TCH-006
AC-AUTH-001
AC-LRN-009
AC-TCH-006
Collaboratorrechten niet beschouwen als leerlingtoegang
REQ-UC-LLN-TOEG-006-007SRS-AUTH-001
SRS-CAT-006
SRS-LRN-009
AC-AUTH-001
AC-CAT-006
AC-LRN-009
Oude privéniveauroutes opnieuw server-side controleren
REQ-UC-LLN-TOEG-006-008SRS-ACC-003
SRS-ACC-005
SRS-CAT-006
SRS-LRN-009
SRS-NFR-SEC-001
SRS-NFR-ACC-001
AC-ACC-003
AC-ACC-005
AC-CAT-006
AC-LRN-009
AC-NFR-SEC-001
AC-NFR-ACC-001
Een toegankelijke maar lege privéniveaucontext veilig kunnen tonen
REQ-UC-LLN-TOEG-006-009SRS-CAT-006
SRS-LRN-009
AC-CAT-006
AC-LRN-009
Privéniveaugebruik onderscheiden van open niveaugebruik
REQ-UC-LLN-TOEG-006-010SRS-AUTH-001
SRS-CAT-001
SRS-LRN-009
AC-AUTH-001
AC-CAT-001
AC-LRN-009
Controleren dat de autorisatie bij dezelfde leerling en hetzelfde niveau hoort
REQ-UC-LLN-TOEG-006-011SRS-AUTH-001
SRS-REL-003
SRS-REL-006
SRS-CAT-006
SRS-LRN-009
SRS-TCH-003
AC-AUTH-001
AC-REL-003
AC-REL-006
AC-CAT-006
AC-LRN-009
AC-TCH-003
Beëindigde docent-leerlingrelaties laten doorwerken in privéniveautoegang
REQ-UC-LLN-TOEG-006-012SRS-AUTH-001
SRS-CAT-006
SRS-LRN-009
AC-AUTH-001
AC-CAT-006
AC-LRN-009
Privéniveauaanbod alleen tonen na actuele autorisatiecontrole