Skip to main content

UC-GEN-PROF-003 — Verplicht niveau instellen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-GEN-PROF-003
NaamVerplicht niveau instellen
DomeinProfiel, voorkeuren en toegankelijkheid
Primaire actorIngelogde gebruiker zonder verplichte niveaucontext
Secundaire actor(en)Systeem, routeguard, profielservice, gebruikersinstellingservice, autorisatieservice, validatieservice
RolcontextIngelogde gebruiker waarvoor een niveaucontext vereist is om de normale applicatiecontext volledig te gebruiken
Betrokken schermenSCH-GEN-11-01 — Profiel, ingelogde landingspagina / frontpagecontext
Gerelateerde usecasesUC-GEN-PROF-001 — Profiel bekijken; UC-GEN-PROF-002 — Profielgegevens wijzigen; UC-GEN-PROF-004 — Profielfoto kiezen; UC-GEN-PROF-007 — Voorkeuren beheren
Primaire entiteitenUsers, UserSettings, toegestane niveaucontext
Secundaire entiteiten / eventssessiecontext, niveauvalidatie, RequiredLevelMissingDetected, RequiredLevelSet, RequiredLevelSetRejected, RequiredLevelSetFailed
Gerelateerde popupsPOP-GEN-PROF-NO-LEVEL, POP-GEN-PROF-LEVEL-REQUIRED, POP-GEN-PROF-LEVEL-SAVED, POP-GEN-PROF-LEVEL-SAVE-FAILED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust have

2. Omschrijving

Deze usecase beschrijft wat er gebeurt wanneer een ingelogde gebruiker nog geen verplichte niveaucontext heeft ingesteld. Na login controleert OefenHub of het profiel een geldig niveau bevat wanneer dat voor de normale applicatiecontext vereist is. Ontbreekt dit niveau, dan wordt de gebruiker nadrukkelijk naar de profielpagina geleid om het niveau alsnog in te stellen.

De eerste attendering na login wordt als blokkerende popup boven de geladen applicatiecontext getoond. Deze popup verwijst naar de profielpagina. Binnen de profielpagina moet de gebruiker een geldig niveau kiezen en opslaan. Wanneer de gebruiker de profielpagina probeert te verlaten zonder het verplichte niveau in te stellen, toont het systeem opnieuw een waarschuwing binnen de profielcontext.

Deze usecase is procesgericht. UI-details zoals exacte tekst, knoplabels, overlaygedrag en themakeuze worden centraal vastgelegd via het popupregister en popup-themes. De usecase beschrijft wanneer de popups worden gebruikt, welke controles gelden, welke data wordt opgeslagen en welke delen van de applicatie niet volledig beschikbaar worden gemaakt zolang de verplichte niveaucontext ontbreekt.

3. Scope

Deze usecase beschrijft:

  • detectie van een ontbrekende verplichte niveaucontext na login of bij het laden van de ingelogde applicatiecontext;
  • het tonen van een attenderende popup die de gebruiker naar de profielpagina leidt;
  • het openen van de profielpagina in de context van verplicht niveau instellen;
  • het tonen van beschikbare niveaukeuzes die server-side zijn bepaald;
  • het server-side valideren van de gekozen niveaucontext;
  • het opslaan van een geldige niveaukeuze;
  • het opheffen van de blokkade of attenderingsstatus nadat een geldig niveau is opgeslagen;
  • het tonen van een waarschuwing wanneer de gebruiker de profielpagina wil verlaten zonder geldig niveau;
  • veilige foutafhandeling bij ontbrekende of ongeldige niveaukeuze;
  • datamutaties en requirements-afleiding voor deze verplichte-niveauflow.

Deze usecase beschrijft niet:

  • het algemene bekijken van het profiel;
  • het wijzigen van overige profielgegevens zoals naamvelden;
  • het wijzigen van profielfoto of avatar;
  • het wijzigen van e-mailadres, wachtwoord, sessies of identity-providergegevens;
  • het beheren van rollen, relaties, niveauautorisaties of accountstatus;
  • het aanmaken of beheren van niveaus door docenten of beheerders;
  • het selecteren van een oefening, starten van een oefenrun of hervatten van een run;
  • het volledige frontpagegedrag nadat het niveau geldig is ingesteld;
  • popupteksten, knopteksten of popup-seeddata;
  • account lifecycle, verwijderen of anonimiseren.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd.
PRE-002De sessie is geldig en kan server-side aan precies één interne OefenHub-gebruiker worden gekoppeld.
PRE-003Het interne gebruikersprofiel bestaat.
PRE-004Het systeem kan bepalen of voor deze gebruiker een niveaucontext verplicht is.
PRE-005Het profiel of de gebruikersinstellingen bevatten op dat moment geen geldig ingesteld niveau, terwijl dit wel vereist is.
PRE-006De profielpagina is bereikbaar voor de gebruiker.
PRE-007De autorisatieservice kan bepalen welke niveaus voor de gebruiker als keuze beschikbaar zijn.
PRE-008De gebruikersinstellingservice of profielopslag kan een geldige niveaukeuze opslaan.
PRE-009Het popupregister bevat de benodigde popupkeys voor de verplichte-niveauflow.

5. Post-condities

IDResultaat
POST-001Wanneer de gebruiker een geldig niveau opslaat, bevat het profiel of UserSettings een geldige actieve niveaucontext.
POST-002De opgeslagen niveaucontext is server-side gevalideerd en behoort tot de toegestane keuzes voor de gebruiker.
POST-003Na succesvolle opslag wordt de verplichte-niveau-attendering voor deze gebruiker opgeheven.
POST-004Na succesvolle opslag kan de normale applicatiecontext worden geladen volgens de geldende rol- en niveaucontext.
POST-005Ongeldige of ontbrekende niveaukeuzes worden niet opgeslagen.
POST-006Bij verlaten van de profielpagina zonder geldig niveau blijft de verplichte-niveau-attendering actief.
POST-007Bij technische opslagfouten blijft het bestaande profiel consistent en blijft de gebruiker in de verplichte-niveauflow.
POST-008De usecase maakt geen nieuw account, geen nieuwe rol, geen relatie en geen niveau aan.
POST-009De usecase wijzigt geen oefenruns, geschiedenis, relaties of autorisaties.
POST-010Bij verlopen sessie wordt de generieke loginflow gebruikt.
POST-011Bij ontbrekende autorisatie wordt de generieke toegang-geweigerd-afhandeling gebruikt.

6. Trigger

De usecase start wanneer een ingelogde gebruiker zonder verplichte niveaucontext de applicatie opent, na login op de ingelogde context terechtkomt, of de profielpagina probeert te verlaten zonder het verplichte niveau te hebben opgeslagen.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1GebruikerLogin / ingelogde applicatiecontextLogt succesvol in of opent de applicatie met geldige sessie.Het systeem laadt de gebruikerscontext.Authenticatie is afgerond via de identity provider.
2SysteemRouteguard / profielcontroleControleert of het interne OefenHub-profiel bestaat.Het systeem gebruikt de sessiegebruiker als bron voor het profiel.Client-side gebruikers-ID’s zijn niet leidend.
3SysteemProfielserviceControleert of een niveaucontext verplicht is en of deze geldig is ingesteld.Het systeem constateert dat een vereist niveau ontbreekt.Geen normale voortgang zonder verplichte niveaucontext.
4SysteemFrontpage / applicatieschilToont de verplichte-niveau-attendering.De gebruiker krijgt POP-GEN-PROF-NO-LEVEL te zien.Popuptekst en knopconfiguratie staan in het popupregister.
5GebruikerPopupKiest de actie om naar het profiel te gaan.Het systeem opent SCH-GEN-11-01 — Profiel.De profielpagina opent in context verplicht niveau instellen.
6SysteemProfielpaginaLaadt actuele profielgegevens en beschikbare niveaukeuzes.Alleen server-side toegestane niveaukeuzes worden getoond.Niveaukeuze is geen vrije invoer.
7GebruikerProfielpaginaKiest een niveau.Het systeem registreert de gekozen waarde als kandidaatwijziging.De keuze moet binnen de toegestane niveaucontext vallen.
8GebruikerProfielpaginaKiest Opslaan of een gelijkwaardige opslagactie.Het systeem start server-side validatie.Client-side validatie is ondersteunend.
9SysteemValidatieserviceValideert dat een niveau gekozen is.Ontbrekende keuze wordt geweigerd.Verplicht veld.
10SysteemAutorisatieserviceValideert dat het gekozen niveau toegestaan is voor deze gebruiker.Ongeldige of niet-toegestane waarde wordt geweigerd.Server-side autorisatie is leidend.
11SysteemGebruikersinstellingservice / profielserviceSlaat de geldige niveaucontext op.UserSettings of de functioneel bijbehorende profielopslag wordt bijgewerkt.Actor en wijzigmoment worden vastgelegd wanneer auditvelden bestaan.
12SysteemBackendRegistreert de geslaagde instelling.Het systeem publiceert/logt RequiredLevelSet waar relevant.Geen gevoelige technische details in gebruikersmeldingen.
13SysteemProfielpaginaToont dat het niveau is opgeslagen.POP-GEN-PROF-LEVEL-SAVED of een gelijkwaardige succesmelding wordt getoond.Popupinhoud staat centraal in popupregister.
14SysteemApplicatiecontextHerberekent de actieve context.De normale applicatiecontext wordt beschikbaar volgens de ingestelde niveau- en rolcontext.Geen oefenrunmutatie.
15GebruikerApplicatiecontextNavigeert verder binnen OefenHub.De verplichte-niveau-attendering wordt niet opnieuw getoond zolang het niveau geldig blijft.De opgeslagen niveaucontext is leidend.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0011De sessie is verlopen of ontbreekt.Het systeem start de generieke loginflow.Generieke loginflow.Geen.
ALT-0022Het interne profiel bestaat niet of provisioning is niet afgerond.Het systeem gebruikt generieke provisioning- of foutafhandeling.Veilige generieke foutmelding.Geen niveaucontext.
ALT-0033Voor deze gebruiker is geen niveaucontext verplicht.Het systeem toont geen verplichte-niveau-attendering en laat normale navigatie toe.Geen popup.Geen.
ALT-0043Er is al een geldig niveau ingesteld.Het systeem laat de normale applicatiecontext door.Geen popup.Geen.
ALT-0054De gebruiker sluit de eerste popup zonder naar profiel te gaan, wanneer sluiten technisch is toegestaan.Het systeem houdt de verplichte-niveau-attendering actief en beperkt normale voortgang.POP-GEN-PROF-NO-LEVEL kan opnieuw of persistent worden aangeboden volgens popupconfiguratie.Geen.
ALT-0065De profielpagina kan niet worden geladen.Het systeem toont veilige foutafhandeling en behoudt de verplichte-niveau-attendering.Generieke foutmelding of POP-GEN-PROF-LEVEL-SAVE-FAILED afhankelijk van moment.Geen.
ALT-0076Er zijn geen niveaukeuzes beschikbaar terwijl niveau verplicht is.Het systeem toont dat het niveau niet gekozen kan worden en blokkeert opslag.POP-GEN-PROF-LEVEL-SAVE-FAILED of inline foutmelding.Geen.
ALT-0087-9De gebruiker probeert op te slaan zonder niveaukeuze.Het systeem weigert opslag en toont veldgerichte validatie.POP-GEN-PROF-LEVEL-REQUIRED of inline validatie.Geen.
ALT-0097-10De gekozen waarde is gemanipuleerd of komt niet voor in de toegestane niveaucontext.Het systeem weigert opslag en toont veilige validatie.POP-GEN-PROF-LEVEL-REQUIRED of inline validatie.Geen.
ALT-0107-10De gekozen niveaucontext was geldig in de UI maar is inmiddels niet meer toegestaan.Het systeem herlaadt de toegestane keuzes en weigert de verouderde keuze.POP-GEN-PROF-LEVEL-REQUIRED of inline validatie.Geen.
ALT-0118-11Opslaan faalt door technische fout.Het systeem rolt de transactie terug of behoudt bestaande consistente waarden.POP-GEN-PROF-LEVEL-SAVE-FAILED.Geen of rollback.
ALT-01211Auditvelden kunnen niet afzonderlijk worden vastgelegd maar de opslag slaagt consistent.Het systeem volgt het centrale logging- en auditbeleid.Geen technische details aan gebruiker.Niveaucontext blijft opgeslagen wanneer de transactie geldig is.
ALT-01313Succesmelding kan niet als popup worden getoond.Het systeem toont de actuele opgeslagen waarde en gebruikt een inline bevestiging als terugval voor de popupbevestiging.Inline bevestiging.Niveaucontext blijft opgeslagen.
ALT-01414Na opslag blijkt de gekozen niveaucontext geen zichtbare oefeningen of content op te leveren.Het systeem laadt de normale context met de geldende leegstaat of informatie.Geen verplichte-niveaupopup.Geen aanvullende mutatie.
ALT-0153-14De gebruiker probeert een afgeschermde route te openen zolang niveau ontbreekt.Het systeem leidt terug naar de verplichte-niveauflow of blokkeert de route volgens routeguard.POP-GEN-PROF-NO-LEVEL of generieke routeguardmelding.Geen.
ALT-0165-8De gebruiker probeert de profielpagina te verlaten zonder niveau op te slaan.Het systeem toont binnen de profielpagina een normale waarschuwing zonder donkere overlay.POP-GEN-PROF-LEVEL-REQUIRED.Geen.
ALT-01716De gebruiker blijft op de profielpagina na waarschuwing.Het systeem laat de gebruiker alsnog een niveau kiezen.Geen nieuwe popup zolang de gebruiker binnen de flow blijft.Geen tot geldige opslag.
ALT-01816De gebruiker forceert navigatie weg of sluit browser/tab.Het systeem bewaart geen ongeldige niveaucontext; bij volgende login of routepoging start de flow opnieuw.Bij volgende interactie opnieuw POP-GEN-PROF-NO-LEVEL of POP-GEN-PROF-LEVEL-REQUIRED.Geen.
ALT-01910-11De gebruiker heeft precies één toegestane niveaukeuze.Het systeem mag die keuze tonen als enige selecteerbare waarde of vooraf selecteren, maar opslag blijft expliciet of server-side controleerbaar.Geen extra popup.Alleen na geldige opslag.
ALT-02012Logging of niet-kritieke eventpublicatie faalt na succesvolle opslag.Het systeem volgt het centrale loggingbeleid; de opgeslagen niveaucontext blijft leidend.Geen technische details aan gebruiker.Niveaucontext blijft opgeslagen.

9. Business rules

IDRegel
BR-UC-GEN-PROF-003-001Een gebruiker waarvoor een niveaucontext verplicht is, mag de normale applicatiecontext niet volledig gebruiken zolang geen geldig niveau is ingesteld.
BR-UC-GEN-PROF-003-002Het ontbreken van een verplicht niveau wordt server-side vastgesteld op basis van het interne profiel en/of UserSettings.
BR-UC-GEN-PROF-003-003De server bepaalt de gebruiker altijd op basis van de sessie.
BR-UC-GEN-PROF-003-004De eerste attendering na login gebruikt POP-GEN-PROF-NO-LEVEL.
BR-UC-GEN-PROF-003-005Verlaten van de profielpagina zonder verplicht niveau gebruikt POP-GEN-PROF-LEVEL-REQUIRED.
BR-UC-GEN-PROF-003-006Een niveaukeuze is geen vrije invoer en moet voorkomen in de server-side toegestane niveaucontext.
BR-UC-GEN-PROF-003-007Een gemanipuleerde of niet-toegestane niveauwaarde wordt geweigerd, ook wanneer deze client-side aanwezig is.
BR-UC-GEN-PROF-003-008Een geldige niveaukeuze wijzigt alleen de profiel- of gebruikersinstellingcontext en geen rollen, relaties of autorisaties.
BR-UC-GEN-PROF-003-009Het instellen van een niveau start, hervat of wijzigt geen oefenrun.
BR-UC-GEN-PROF-003-010Wanneer geen niveaukeuzes beschikbaar zijn terwijl een niveau verplicht is, mag het systeem geen ongeldige default opslaan.
BR-UC-GEN-PROF-003-011Succesvolle opslag heft de verplichte-niveau-attendering op zolang de opgeslagen niveaucontext geldig blijft.
BR-UC-GEN-PROF-003-012Validatie- en foutmeldingen mogen geen technische identifiers, stacktraces, databasefouten, tokens of identity-providerdetails tonen.
BR-UC-GEN-PROF-003-013Popuptekst, knoptekst, overlaygedrag en themakeuze worden niet in de usecase gedupliceerd maar via popupregister en popup-themes beheerd.
BR-UC-GEN-PROF-003-014De verplichte-niveauflow valt binnen het profiel- en gebruikersinstellingendomein, niet binnen oefenrun-, relatie- of autorisatiebeheer.
BR-UC-GEN-PROF-003-015Wanneer de ingestelde niveaucontext later ongeldig wordt, moet het systeem opnieuw kunnen vaststellen dat herstel of nieuwe keuze nodig is.

Centrale business rules die hierbij horen:

BusinessRule-IDToepassing
BR-GEN-SEC-001Afgeschermde acties vereisen server-side autorisatie en objectcontrole.
BR-GEN-PROF-001Een gebruiker mag via de normale profielroute uitsluitend het eigen profiel beheren.
BR-GEN-PROF-004Actieve niveaucontext moet worden afgeleid uit toegestane gebruikers- en rolcontext.
BR-GEN-PROF-005Gebruikers waarvoor niveaucontext verplicht is, moeten een geldige niveaucontext instellen voordat de normale context volledig beschikbaar is.
BR-GEN-POP-001Usecases verwijzen alleen naar PopupKey; popupinhoud staat centraal in het popupregister.
BR-GEN-SEC-002Gebruikersinvoer en clientwaarden worden server-side gevalideerd en veilig verwerkt.

10. Datavalidatie

Veld / objectValidatie
SessieMoet geldig zijn en aan precies één interne OefenHub-gebruiker gekoppeld kunnen worden.
Users.IdWordt server-side uit de sessie afgeleid en niet uit clientinput.
ProfielrecordMoet bestaan voordat niveaucontext kan worden opgeslagen.
Verplicht-niveau-indicatieWordt server-side afgeleid uit de applicatieregels voor de gebruiker en context.
Bestaande niveaucontextMoet geldig en toegestaan zijn; anders wordt deze als ontbrekend of ongeldig behandeld.
NiveaukeuzelijstWordt server-side opgebouwd uit toegestane niveaucontext; client-side lijst is niet leidend.
Gekozen niveauVerplicht wanneer niveaucontext vereist is.
Gekozen niveauMoet voorkomen in de server-side toegestane niveaucontext voor deze gebruiker.
Gekozen niveauMag niet als vrije tekst of willekeurige identifier worden geaccepteerd.
UserSettings / profielniveauveldMag alleen worden bijgewerkt met een gevalideerde niveauverwijzing of geldige niveaucontext.
AuditveldenUpdatedByUserId wordt afgeleid uit de sessie; UpdatedAtUtc wordt server-side bepaald wanneer deze velden bestaan.
PopupKeyMoet bestaan in het popupregister voordat de popup gebruikt kan worden.
FoutmeldingGebruikersgericht formuleren; geen GUID’s, stacktraces, databasefouten, tokens, ExternalId of identity-providerdetails tonen.
LoggingGeen wachtwoorden, tokens, secrets, gevoelige headers of onnodige persoonsgegevens loggen.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
1Readsessie / identity-contextControleren of de gebruiker ingelogd is.
2ReadUsersInterne gebruiker bepalen uit de sessie.
3ReadUsers, UserSettingsControleren of een verplichte niveaucontext ontbreekt of ongeldig is.
4Event / loggingRequiredLevelMissingDetectedOntbrekende verplichte niveaucontext logisch registreren volgens centraal loggingbeleid.
6Readniveau- en autorisatiecontextBeschikbare niveaukeuzes bepalen.
9Validatiegekozen niveauControleren dat een niveau gekozen is.
10Validatie / autorisatiegekozen niveauControleren dat de gekozen waarde toegestaan is.
11UpdateUserSettings of profielopslagGeldige actieve niveaucontext opslaan.
11Update / auditUpdatedByUserId, UpdatedAtUtcLaatste wijziging vastleggen wanneer deze velden aanwezig zijn.
12Event / loggingRequiredLevelSetGeslaagde instelling van verplichte niveaucontext logisch registreren.
ALT-008 t/m ALT-010Event / loggingRequiredLevelSetRejectedOngeldige, ontbrekende of niet-toegestane niveaukeuze veilig registreren volgens centraal loggingbeleid.
ALT-011Event / loggingRequiredLevelSetFailedTechnische opslagfout veilig registreren.
ALT-016 t/m ALT-018Geen mutatieUsers, UserSettingsVerlaten zonder geldig niveau veroorzaakt geen opslag.

12. Geen datamutaties

EntiteitReden
UsersWordt gelezen voor profielcontext; naamgegevens worden niet in deze usecase gewijzigd tenzij het gekozen datamodel niveau op Users opslaat.
Rollen / role assignmentsNiveau instellen wijzigt geen rollen.
RelatiesNiveau instellen maakt, wijzigt of verwijdert geen relaties.
NiveauautorisatiesDe keuze selecteert alleen binnen bestaande toegestane context; er wordt geen autorisatie toegekend.
NiveausEr worden geen nieuwe niveaus aangemaakt of beheerd.
Categorieën / oefeningenHet instellen van niveau wijzigt geen oefenaanbod.
ExerciseRunsEr worden geen oefenruns gestart, hervat, afgerond of verplaatst.
Berichten / systeemberichtenDe verplichte-niveauflow verstuurt geen systeembericht.
Identity-provideraccountAuthenticatie- en identity-providergegevens worden niet gewijzigd.
ToegankelijkheidsinstellingenDeze usecase wijzigt geen contrast-, dyslexie- of lettergrootte-instellingen.
Algemene voorkeurenDeze usecase wijzigt geen niet-profielgebonden voorkeuren.
ProfielavatarProfielfoto kiezen hoort bij UC-GEN-PROF-004.

13. State diagram

Niet van toepassing. Er wordt geen zelfstandig statusobject met eigen statustransities geïntroduceerd. De flow gebruikt een afgeleide toestand: verplichte niveaucontext ontbreekt, niveaucontext is ongeldig, of niveaucontext is geldig ingesteld.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Detectie na login en routering naar profiel

16.2 Niveau opslaan vanuit profiel

16.3 Verlaten zonder niveau

17. Popupverwijzingen

PopupKeyMomentDoel
POP-GEN-PROF-NO-LEVELNa login of routecontrole wanneer een verplicht niveau ontbreekt.Gebruiker attenderen dat eerst een niveau ingesteld moet worden en doorleiden naar profiel.
POP-GEN-PROF-LEVEL-REQUIREDBinnen de profielpagina wanneer de gebruiker zonder geldig niveau wil opslaan of vertrekken.Duidelijk maken dat het niveau verplicht is voordat normale voortgang mogelijk is.
POP-GEN-PROF-LEVEL-SAVEDNa succesvolle opslag van de geldige niveaucontext.Bevestigen dat het niveau is opgeslagen.
POP-GEN-PROF-LEVEL-SAVE-FAILEDBij technische opslagfout of ontbrekende niveaukeuzemogelijkheden.Veilige foutmelding zonder technische details.

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

DoeldocumentAfleiding
Functioneel OntwerpBeschrijf dat gebruikers waarvoor niveaucontext verplicht is na login naar profiel worden geleid wanneer niveau ontbreekt.
Functioneel OntwerpBeschrijf het onderscheid tussen eerste attendering na login met overlay en waarschuwing binnen profielpagina bij verlaten zonder niveau.
Functioneel OntwerpBeschrijf dat de gebruiker alleen kan kiezen uit server-side toegestane niveaus en geen vrij niveau kan invoeren.
Functioneel OntwerpBeschrijf dat normale applicatiecontext pas volledig beschikbaar wordt na geldige niveaukeuze.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, oefencatalogusBeschrijft waar de verplichte-niveaucontrole plaatsvindt: routeguard, profielservice en/of gebruikerscontextservice.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, oefencatalogusBeschrijft dat actieve niveaucontext technisch in UserSettings.SelectedTeacherLevelId wordt opgeslagen als soft link naar de catalogus-/niveaucontext.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, oefencatalogusBeschrijft hoe ongeldige of later ingetrokken niveaucontext opnieuw wordt gedetecteerd.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, oefencatalogusBeschrijft welke popupkeys, popupvariant en theme uit popupregister en popup-themes worden gebruikt.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, oefencatalogusBeschrijft hoe auditvelden en logging worden toegepast zonder gevoelige gegevens.
Software Requirements SpecificationBevat requirements voor detectie van ontbrekend verplicht niveau, validatie van niveaukeuze, routeblokkade, veilige foutafhandeling en opslag.
Software Requirements SpecificationBorgt dat een gekozen niveau alleen uit toegestane niveaucontext mag komen.
Software Requirements SpecificationBorgt dat de flow geen rollen, relaties, autorisaties of oefenruns wijzigt.
Database-informatieBeschrijft UserSettings.SelectedTeacherLevelId als soft link naar de actieve niveaucontext en legt relevante wijzigingsmetadata vast waar nodig.
PopupbeheerBevat of verifieert de betrokken popupkeys in het popupregister.

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-GEN-PROF-003-001SRS-ACC-002
SRS-ACC-003
SRS-CAT-006
AC-ACC-002
AC-ACC-003
AC-CAT-006
Na login of routecontrole kunnen vaststellen of een voor de gebruiker verplichte niveaucontext ontbreekt
REQ-UC-GEN-PROF-003-002SRS-RDM-001
SRS-RDM-005
SRS-ACC-003
SRS-CAT-006
SRS-POP-001
AC-RDM-001
AC-RDM-005
AC-ACC-003
AC-CAT-006
AC-POP-001
Een gebruiker zonder verplichte niveaucontext attenderen met een centrale popup en een route naar de profielpagina aanbieden
REQ-UC-GEN-PROF-003-003SRS-RDM-001
SRS-RDM-005
SRS-ACC-003
SRS-CAT-006
AC-RDM-001
AC-RDM-005
AC-ACC-003
AC-CAT-006
De profielpagina kunnen openen in de context van verplicht niveau instellen
REQ-UC-GEN-PROF-003-004SRS-AUTH-001
SRS-ACC-003
SRS-CAT-001
AC-AUTH-001
AC-ACC-003
AC-CAT-001
Beschikbare niveaukeuzes server-side bepalen
REQ-UC-GEN-PROF-003-005SRS-AUTH-001
SRS-ACC-003
SRS-CAT-006
AC-AUTH-001
AC-ACC-003
AC-CAT-006
Een ontbrekende niveaukeuze weigeren wanneer niveaucontext verplicht is
REQ-UC-GEN-PROF-003-006SRS-AUTH-001
SRS-ACC-003
SRS-CAT-006
AC-AUTH-001
AC-ACC-003
AC-CAT-006
Een gekozen niveau server-side valideren tegen de toegestane niveaucontext van de gebruiker
REQ-UC-GEN-PROF-003-007SRS-AUTH-001
SRS-ACC-003
SRS-CAT-001
AC-AUTH-001
AC-ACC-003
AC-CAT-001
Gemanipuleerde of niet-toegestane niveauwaarden weigeren
REQ-UC-GEN-PROF-003-008SRS-ACC-003
SRS-CAT-001
AC-ACC-003
AC-CAT-001
Een geldige niveaukeuze opslaan in de daarvoor bedoelde profiel- of gebruikersinstellingopslag
REQ-UC-GEN-PROF-003-009SRS-ACC-003
SRS-CAT-006
SRS-NFR-AUD-001
SRS-NFR-LOG-001
AC-ACC-003
AC-CAT-006
AC-NFR-AUD-001
AC-NFR-LOG-001
Auditvelden of gelijkwaardige logging vastleggen bij een geslaagde niveaucontextwijziging wanneer het betrokken record dit ondersteunt
REQ-UC-GEN-PROF-003-010SRS-ACC-003
SRS-CAT-006
AC-ACC-003
AC-CAT-006
De verplichte-niveau-attendering opheffen nadat een geldige niveaucontext is opgeslagen
REQ-UC-GEN-PROF-003-011SRS-RDM-001
SRS-RDM-005
SRS-ACC-003
SRS-CAT-001
AC-RDM-001
AC-RDM-005
AC-ACC-003
AC-CAT-001
Binnen de profielpagina waarschuwen wanneer de gebruiker zonder verplicht niveau wil vertrekken
REQ-UC-GEN-PROF-003-012SRS-AUTH-001
SRS-ACC-003
SRS-REL-001
SRS-CAT-001
SRS-LRN-009
AC-AUTH-001
AC-ACC-003
AC-REL-001
AC-CAT-001
AC-LRN-009
Bij het instellen van een verplicht niveau geen rollen, relaties, autorisaties, niveaus, categorieën, oefeningen of oefenruns wijzigen
REQ-UC-GEN-PROF-003-013SRS-ACC-003
SRS-TIC-002
SRS-CAT-001
SRS-NFR-SEC-001
AC-ACC-003
AC-TIC-002
AC-CAT-001
AC-NFR-SEC-001
Veilige gebruikersgerichte foutmeldingen tonen wanneer niveaukeuze of opslag faalt
REQ-UC-GEN-PROF-003-014SRS-ACC-003
SRS-CAT-001
SRS-NFR-SEC-001
AC-ACC-003
AC-CAT-001
AC-NFR-SEC-001
Geen technische identifiers, stacktraces, tokens, databasefouten of identity-providerdetails tonen in de verplichte-niveauflow
REQ-UC-GEN-PROF-003-015SRS-ACC-003
AC-ACC-003
Bij technische opslagfouten de bestaande profielcontext consistent houden
REQ-UC-GEN-PROF-003-016SRS-ACC-003
SRS-CAT-006
AC-ACC-003
AC-CAT-006
Opnieuw kunnen detecteren dat verplichte niveaucontext ontbreekt wanneer de gebruiker de flow verlaat zonder geldige opslag
REQ-UC-GEN-PROF-003-017SRS-ACC-003
SRS-POP-001
AC-ACC-003
AC-POP-001
Het popupregister gebruiken voor popupinhoud en mag popupteksten niet in de usecase of code dupliceren
REQ-UC-GEN-PROF-003-018SRS-ACC-002
SRS-ACC-003
AC-ACC-002
AC-ACC-003
Bij een ontbrekende sessie de generieke loginflow gebruiken in plaats van een profielspecifieke foutflow
REQ-UC-GEN-PROF-003-019SRS-AUTH-001
SRS-ACC-003
AC-AUTH-001
AC-ACC-003
Bij ontbrekende autorisatie de generieke toegang-geweigerd-afhandeling gebruiken
REQ-UC-GEN-PROF-003-020SRS-ACC-003
SRS-CAT-001
SRS-NFR-SEC-001
AC-ACC-003
AC-CAT-001
AC-NFR-SEC-001
Een situatie zonder beschikbare niveaukeuzes veilig afhandelen zonder een ongeldige default op te slaan