Skip to main content

UC-LLN-TOEG-004 — Toegang vervalt door ingetrokken autorisatie

1. Kerngegevens

VeldWaarde
Usecase-IDUC-LLN-TOEG-004
NaamToegang vervalt door ingetrokken autorisatie
DomeinLeerling / Oefenaanbod en toegang
Primaire actorLeerling
Secundaire actor(en)OefenHub frontend, OefenHub backend, autorisatielaag, database, routeguard, berichtencomponent
RolcontextLeerling waarvan een eerder toegankelijke niveaucontext, categorie of oefening niet meer geldig is door ingetrokken autorisatie, beëindigde relatie of gewijzigde contentstatus.
Betrokken schermenLeerling-frontpage, oefenaanbod, oefeningroute, profielniveaukeuze, geschiedenisroute, berichtenoverzicht als aparte generieke context.
Gerelateerde usecasesUC-LLN-TOEG-003 — Oefeningstoegang controleren bij openen; UC-LLN-TOEG-006 — Privéniveau gebruiken via autorisatie; UC-LLN-OEF-002 — Verder gaan met niet-afgeronde oefening; UC-LLN-HIS-004 — Geschiedenis alles bekijken; UC-GEN-MSG-003 — Bericht openen
Primaire entiteitenUsers, UserSettings, TeacherStudentLevelAccess, UserRelationships, TeacherLevels, ExerciseRuns
Secundaire entiteiten / eventsTeacherLevelCategories, TeacherLevelCategoryExercises, Exercises, SystemMessages
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft de leerlingzijde wanneer eerder beschikbare toegang tot een niveau of oefening vervalt. De intrekking zelf gebeurt in docent-, beheerder- of relatieflows en wordt hier niet opnieuw uitgevoerd. Deze usecase beschrijft wat de leerling daarna wel of niet meer mag zien, openen, starten of hervatten.

Wanneer toegang tot een privéniveau wordt ingetrokken, mag de leerling geen nieuwe oefeningen binnen dat niveau starten en mag een oude link of oude frontpageweergave de toegang niet herstellen. Bestaande afgeronde geschiedenis blijft echter historisch beschikbaar volgens de geschiedenisregels, omdat ExerciseRuns hun niveaucontext bewaren en geschiedenis niet afhankelijk mag zijn van actuele autorisatie voor nieuwe startacties.

Niet-afgeronde runs binnen een vervallen niveaucontext worden niet automatisch afgerond en niet als resultaat zichtbaar gemaakt. Of een niet-afgeronde run later nog hervatbaar is, wordt opnieuw bepaald door actuele oefeningtoegang. Deze usecase voorkomt daarmee dat intrekking van autorisatie stilzwijgend tot dataverlies, nieuwe autorisaties of foutieve resultaten leidt.

3. Scope

Deze usecase omvat wel:

  • detecteren dat een geselecteerd niveau niet langer toegankelijk is
  • blokkeren van categorieën en oefeningen binnen vervallen toegang
  • voorkomen dat oude links of clientcache toegang herstellen
  • afhandelen van niet-hervatbare niet-afgeronde runs na intrekking
  • behouden van afgeronde geschiedenis waar dat volgens geschiedenisregels is toegestaan
  • ongeldig maken of negeren van een niet langer toegankelijke selected-level-context
  • terugleiden naar profielniveaukeuze of beschikbare oefencontext
  • verwijzen naar systeembericht wanneer de leerling geïnformeerd is via het berichtendomein

Deze usecase omvat niet:

  • intrekken van autorisatie door docent of beheerder
  • beëindigen van docent-leerlingrelatie
  • aanmaken van systeemberichten over intrekking
  • wijzigen van historie of afgeronde resultaten
  • verwijderen van oefendata
  • automatisch kiezen van een nieuwe privéniveauautorisatie
  • relatiebeheer of profielbeheer inhoudelijk uitwerken
  • herberekenen van statistieken

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 leerling had eerder toegang tot een niveau, categorie of oefening.
PRE-002De actuele toegang is gewijzigd door een externe flow, zoals autorisatie-intrekking of relatiebeëindiging.
PRE-003De backend kan actuele toegang opnieuw bepalen.
PRE-004Afgeronde exercise runs bewaren hun historische niveaucontext.
PRE-005Routeguard controleert oude routes opnieuw.

5. Post-condities

IDResultaat
POST-001De leerling kan geen nieuwe oefeningen starten binnen vervallen toegang.
POST-002Categorieën en oefeningen uit de vervallen context verdwijnen uit actueel oefenaanbod.
POST-003Een niet langer geldige selected-level-context wordt niet meer als actief gebruikt.
POST-004Afgeronde geschiedenis blijft raadpleegbaar via geschiedenisregels waar toegestaan.
POST-005Niet-afgeronde runs worden niet automatisch afgerond of verwijderd.
POST-006Er wordt geen nieuwe autorisatie of relatie aangemaakt.

6. Trigger

De usecase start wanneer de leerling na een toegangsintrekking de frontpage, oefenaanbod, een oefeningroute of een eerder geselecteerd niveau opnieuw gebruikt.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1LeerlingFrontpage / oefeningrouteOpent een eerder beschikbare context.Frontend vraagt actuele context op.Oude clientstate is niet leidend.
2BackendSessielaagControleert leerlingrol.Leerlingcontext geldig.Server-side sessie.
3BackendNiveaucontextLeest geselecteerd niveau of routecontext.Systeem controleert actuele toegang.UserSettings.SelectedTeacherLevelId of routecontext.
4BackendAutorisatieStelt vast dat toegang is vervallen.Niveau wordt niet als actief gebruikt.TeacherStudentLevelAccess.IsActive = false of relatie niet actief.
5BackendContextresolverZoekt of er andere toegankelijke niveaus zijn.Systeem kiest geen willekeurige stille vervanging wanneer bewuste keuze nodig is.Contextkeuze blijft gecontroleerd.
6FrontendOefenaanbodVerwijdert vervallen categorieën en oefeningen uit weergave.Leerling ziet alleen actuele toegang.Geen datamutatie.
7RouteguardOefeningrouteBlokkeert oude oefeningroutes binnen vervallen context.Geen oefenpayload wordt geladen.UC-LLN-TOEG-003.
8BackendGeschiedeniscontextLaat afgeronde historie beschikbaar waar geschiedenisregels dat toestaan.Historie wordt niet gewist.ExerciseRuns.LevelId historisch.
9FrontendVervolgrouteLeidt naar beschikbare niveaukeuze, oefenaanbod of geschiedenis.Leerling kan verder binnen actuele rechten.Geen automatische autorisatie.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0013Selected level is ingetrokken maar er is één ander toegankelijk niveau.Systeem mag de gebruiker gericht naar beschikbare context leiden, maar moet geen verborgen autorisatie aanmaken.Componentgedrag.Eventueel UserSettings alleen via niveaukeuzeflow.
ALT-0023Geen enkel niveau is nog toegankelijk.Leerling krijgt bestaande verplicht-niveau/geen-toegang-context zonder oefenaanbod.Geen popupregister-popup.Geen.
ALT-0034Docent-leerlingrelatie is beëindigd.Alle aan die relatie gekoppelde niveaucontexten zijn niet langer startbaar.Geen.Geen nieuwe mutatie.
ALT-0047Leerling probeert niet-afgeronde run te hervatten.Hervatten wordt geblokkeerd wanneer actuele oefeningtoegang ontbreekt.Niet-beschikbaarafhandeling.Run blijft niet-afgerond.
ALT-0058Leerling opent afgeronde geschiedenisregel.Geschiedenis mag zichtbaar blijven volgens historieusecase, ook als nieuwe toegang vervallen is.Geen.Geen.
ALT-0069Systeembericht over intrekking bestaat.Bericht kan via generieke berichtenflow gelezen worden; deze usecase maakt of verwerkt het bericht niet.Niet van toepassing.Geen.
ALT-0071Frontend toont oude categorie door cache.Backendresponse corrigeert de lijst en routeguard blokkeert openen.Geen.Geen.

9. Business rules

IDRegel
BR-001Ingetrokken toegang blokkeert nieuwe oefenstart binnen die niveaucontext.
BR-002Ingetrokken toegang herstelt niet automatisch door browsercache of oude URL.
BR-003Afgeronde geschiedenis blijft historisch beschikbaar waar de geschiedenisusecases dat toestaan.
BR-004Niet-afgeronde runs worden door intrekking niet als afgerond gemarkeerd.
BR-005De leerlingflow maakt geen nieuwe TeacherStudentLevelAccess aan.
BR-006Een vervallen selected level mag niet als actuele context blijven gelden.
BR-007Een systeembericht over intrekking hoort bij het berichtendomein en is niet de autorisatiebron.
BR-008Wanneer geen toegankelijke niveaus resteren, toont OefenHub geen oefenaanbod.
BR-009Historische resultaten worden niet verwijderd door autorisatie-intrekking.
BR-010Server-side controle bepaalt of hervatten nog is toegestaan.

10. Datavalidatie

Veld / objectValidatie
Selected levelMoet nog actief en toegankelijk zijn; anders ongeldig.
TeacherStudentLevelAccessMoet actief zijn voor privéniveaucontext.
UserRelationshipDocent-leerlingrelatie moet actief zijn voor privéniveautoegang.
Open niveauKan als alternatief alleen als de open-niveauregels gelden.
Niet-afgeronde runMag alleen hervat worden wanneer actuele oefeningtoegang nog geldig is.
Afgeronde runGeschiedeniszichtbaarheid volgt geschiedenisregels, niet nieuwe-startautorisatie.
SysteemberichtIs informatief en geen bewijs van toegang.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
1ReadUserSettingsEerder geselecteerde niveaucontext wordt gelezen.
3ReadTeacherStudentLevelAccess, UserRelationshipsActuele toegang wordt gecontroleerd.
6ReadTeacherLevelCategories, TeacherLevelCategoryExercises, ExercisesActueel aanbod wordt opnieuw opgebouwd.
8ReadExerciseRunsAfgeronde historie kan worden gelezen volgens geschiedenisregels.

Deze usecase voert de intrekking niet uit. De autorisatie- of relatie-intrekking is al vastgelegd in de docent-, beheer- of relatieflow die de toegang heeft beëindigd.

12. Geen datamutaties

EntiteitReden
TeacherStudentLevelAccessIntrekking is al gebeurd in docent- of beheerflow.
UserRelationshipsRelatiebeëindiging wordt niet door deze usecase uitgevoerd.
SystemMessagesSysteemberichten worden niet in deze usecase aangemaakt.
ExerciseRunsAfgeronde en niet-afgeronde runs worden niet verwijderd of afgerond door deze afhandeling.
UserSettingsDeze usecase mag een ongeldige context negeren; wijziging van niveaukeuze hoort bij niveaukeuzeflow.

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-004-001SRS-AUTH-001
SRS-CAT-001
SRS-LRN-009
AC-AUTH-001
AC-CAT-001
AC-LRN-009
Vervallen niveauautorisatie detecteren wanneer een leerling een oude context gebruikt
REQ-UC-LLN-TOEG-004-002SRS-AUTH-001
SRS-LRN-001
AC-AUTH-001
AC-LRN-001
Nieuw starten binnen vervallen toegang blokkeren
REQ-UC-LLN-TOEG-004-003SRS-AUTH-001
SRS-CAT-001
SRS-LRN-009
AC-AUTH-001
AC-CAT-001
AC-LRN-009
Categorieën en oefeningen uit vervallen toegang niet langer in actueel oefenaanbod tonen
REQ-UC-LLN-TOEG-004-004SRS-AUTH-001
SRS-LRN-006
AC-AUTH-001
AC-LRN-006
Niet-afgeronde runs niet automatisch afronden bij autorisatie-intrekking
REQ-UC-LLN-TOEG-004-005SRS-LRN-010
SRS-NFR-AUD-001
AC-LRN-010
AC-NFR-AUD-001
Afgeronde geschiedenis beschikbaar houden volgens de geschiedenisregels
REQ-UC-LLN-TOEG-004-006SRS-AUTH-001
SRS-LRN-009
AC-AUTH-001
AC-LRN-009
Geen nieuwe autorisatie aanmaken om een vervallen context te herstellen
REQ-UC-LLN-TOEG-004-007SRS-AUTH-004
SRS-CAT-001
SRS-LRN-009
AC-AUTH-004
AC-CAT-001
AC-LRN-009
Een ongeldig geselecteerd niveau niet als actuele context blijven gebruiken
REQ-UC-LLN-TOEG-004-008SRS-AUTH-001
SRS-LRN-009
AC-AUTH-001
AC-LRN-009
Oude routes en clientcache opnieuw server-side controleren
REQ-UC-LLN-TOEG-004-009SRS-AUTH-001
SRS-LRN-009
AC-AUTH-001
AC-LRN-009
Vervallen toegang niet herstellen via automatische fallbackautorisatie
REQ-UC-LLN-TOEG-004-010SRS-AUTH-001
SRS-LRN-006
AC-AUTH-001
AC-LRN-006
Niet-afgeronde runs binnen vervallen toegang niet als resultaat tonen
REQ-UC-LLN-TOEG-004-011SRS-AUTH-001
SRS-MSG-001
SRS-LRN-009
AC-AUTH-001
AC-MSG-001
AC-LRN-009
Systeemberichten over intrekking behandelen als communicatie en niet als autorisatiebron
REQ-UC-LLN-TOEG-004-012SRS-ACC-003
SRS-ACC-005
SRS-CAT-001
SRS-LRN-009
SRS-NFR-ACC-001
AC-ACC-003
AC-ACC-005
AC-CAT-001
AC-LRN-009
AC-NFR-ACC-001
Andere toegankelijke niveaus opnieuw bepalen zonder de vervallen context vrij te geven