Skip to main content

UC-GEN-PROF-002 — Profielgegevens wijzigen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-GEN-PROF-002
NaamProfielgegevens wijzigen
DomeinProfiel, voorkeuren en toegankelijkheid
Primaire actorIngelogde gebruiker
Secundaire actor(en)Systeem, profielservice, gebruikersinstellingservice, autorisatieservice, identity-providerintegratie, validatieservice
RolcontextIedere ingelogde gebruiker met toegang tot de normale applicatiecontext
Betrokken schermenSCH-GEN-11-01 — Profiel
Gerelateerde usecasesUC-GEN-PROF-001 — Profiel bekijken; UC-GEN-PROF-003 — Verplicht niveau instellen; UC-GEN-PROF-004 — Profielfoto kiezen; UC-GEN-PROF-005 — Toegankelijkheidsinstellingen beheren; UC-GEN-PROF-007 — Voorkeuren beheren
Primaire entiteitenUsers, UserSettings
Secundaire entiteiten / eventsidentity-provideraccount, toegestane niveaucontext, profielvalidatie, ProfileUpdated, ProfileUpdateRejected, ProfileUpdateFailed, IdentityProviderAccountFlowStarted
Gerelateerde popupsPOP-GEN-PROF-VALIDATION-FAILED, POP-GEN-PROF-SAVE-FAILED, POP-GEN-PROF-SAVED, POP-GEN-PROF-IDENTITY-REDIRECT
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust have

2. Omschrijving

De gebruiker wijzigt de eigen profielgegevens op de profielpagina. Binnen OefenHub gaat het om applicatieprofielgegevens zoals naamgegevens en de actieve niveaucontext. Het systeem bepaalt de te wijzigen gebruiker altijd server-side op basis van de sessie. Een gebruiker kan via deze usecase alleen het eigen profiel wijzigen.

OefenHub beheert het aanvullende applicatieprofiel en gebruikersinstellingen. Authenticatie, wachtwoorden, sessies en de definitieve afhandeling van e-mailadreswijzigingen horen bij de identity provider. Daarom schrijft OefenHub geen wachtwoordwaarde weg en voert OefenHub geen volledige e-mailadreswijziging zelfstandig uit. Acties voor e-mailadres of wachtwoord starten een identity-providerflow of verwijzen daarnaar, afhankelijk van de gekozen technische integratie.

De wijziging van een profielfoto of avatar wordt niet in deze usecase uitgewerkt. Omdat profielafbeeldingen in OefenHub geen vrije uploads zijn maar vooraf gedefinieerde profielafbeeldingen, wordt het kiezen of verwijderen van zo’n afbeelding beschreven in UC-GEN-PROF-004.

Deze usecase beschrijft de normale wijzigingsflow, server-side validatie, objectautorisatie, veilige foutafhandeling en de datamutaties die ontstaan wanneer de gebruiker gewijzigde profielgegevens opslaat.

3. Scope

Deze usecase beschrijft:

  • het openen van de bewerkmodus of wijzigbare profielvelden vanuit de eigen profielpagina;
  • het server-side bepalen van de gebruiker die gewijzigd mag worden;
  • het wijzigen van naamgegevens binnen het OefenHub-profiel;
  • het wijzigen van de actieve niveaucontext wanneer de gebruiker meerdere toegestane niveaus heeft;
  • het valideren van verplichte en optionele profielvelden;
  • het blokkeren van gereserveerde of ongeldige waarden;
  • het controleren dat een gekozen niveau binnen de toegestane context van de gebruiker valt;
  • het opslaan van geldige profielwijzigingen;
  • het bijwerken van auditvelden zoals UpdatedByUserId en UpdatedAtUtc wanneer deze op de betrokken records aanwezig zijn;
  • het tonen van veilige validatie- en foutmeldingen zonder technische details;
  • het starten of verwijzen naar identity-providerflows voor e-mailadres en wachtwoord;
  • requirement-afleiding voor profielwijzigingen.

Deze usecase beschrijft niet:

  • het bekijken van profielgegevens zonder wijziging;
  • het kiezen, vervangen of verwijderen van de profielfoto/avatar;
  • het afdwingen van het verplicht instellen van een niveau bij een gebruiker zonder niveau;
  • het beheren van toegankelijkheidsinstellingen;
  • het synchroniseren van toegankelijkheidscookies;
  • het beheren van algemene of rolgebonden voorkeuren;
  • het aanpassen van rollen, relaties, autorisaties of accountstatus;
  • het wijzigen van het e-mailadres als volledig OefenHub-proces;
  • het wijzigen van wachtwoord, MFA, sessies of andere credentials;
  • accountverwijdering, anonimiseren, deactiveren of account lifecycle-beheer;
  • beheerderflows voor het wijzigen van andermans profiel;
  • popupbeheer, seeddata of importdata.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd.
PRE-002De sessie is geldig en kan server-side aan precies één OefenHub-gebruiker worden gekoppeld.
PRE-003Het interne gebruikersprofiel bestaat.
PRE-004De gebruiker heeft toegang tot SCH-GEN-11-01 — Profiel.
PRE-005De gebruiker wijzigt uitsluitend het eigen profiel.
PRE-006De profielservice kan het eigen Users-record lezen en, bij geldige invoer, wijzigen.
PRE-007De gebruikersinstellingservice kan de relevante actieve niveaucontext lezen en, bij geldige invoer, wijzigen.
PRE-008De autorisatieservice kan bepalen welke niveaus voor de gebruiker als profielcontext beschikbaar zijn.
PRE-009De identity-providerintegratie of identity-providerroute is beschikbaar wanneer de gebruiker e-mailadres of wachtwoord wil wijzigen.

5. Post-condities

IDResultaat
POST-001Alleen het profiel van de ingelogde gebruiker is gewijzigd.
POST-002Geldige wijzigingen in OefenHub-profielgegevens zijn opgeslagen in Users en/of de bijbehorende profielopslag.
POST-003Een geldige wijziging van actieve niveaucontext is opgeslagen in UserSettings of een functioneel gelijkwaardige gebruikersinstelling.
POST-004Auditvelden voor laatst gewijzigd door en laatst gewijzigd op zijn bijgewerkt wanneer deze op het betrokken record bestaan.
POST-005Ongeldige waarden zijn niet opgeslagen.
POST-006Een gekozen niveau dat buiten de toegestane context valt, is geweigerd en niet opgeslagen.
POST-007Wachtwoordwaarden zijn niet door OefenHub ontvangen of opgeslagen.
POST-008Een e-mailadreswijziging is niet als directe OefenHub-profielmutatie uitgevoerd; de gebruiker is naar de identity-providerflow geleid of krijgt de passende identity-provideractie aangeboden.
POST-009Een profielfoto-/avatarwijziging is niet binnen deze usecase opgeslagen.
POST-010De profielpagina toont na succesvolle opslag de actuele opgeslagen profielwaarden.
POST-011Bij validatiefouten blijft de gebruiker op de profielpagina en worden veilige veldgerichte meldingen getoond.
POST-012Bij technische opslagfouten blijft bestaande profieldata ongewijzigd of consistent teruggedraaid.
POST-013Bij verlopen sessie of ontbrekende login wordt de generieke loginflow gebruikt.
POST-014Bij ontbrekende autorisatie wordt de generieke toegang-geweigerd-afhandeling gebruikt.

6. Trigger

De gebruiker opent de eigen profielpagina en kiest een wijzigactie, bijvoorbeeld Bewerken, Opslaan, E-mailadres wijzigen, Wachtwoord wijzigen of een gelijkwaardige actie binnen SCH-GEN-11-01 — Profiel.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1GebruikerSCH-GEN-11-01 — ProfielOpent de eigen profielpagina.Het systeem toont de actuele profielgegevens.Zie UC-GEN-PROF-001.
2GebruikerProfielpaginaKiest de wijzigmodus of past wijzigbare velden aan.Het systeem maakt alleen de OefenHub-profielvelden wijzigbaar die binnen deze usecase vallen.E-mailadres, wachtwoord en profielfoto volgen aparte routes.
3SysteemRouteguardControleert sessie en basisautorisatie.Alleen een ingelogde gebruiker mag profielwijzigingen starten.Loginstatus wordt server-side beoordeeld.
4SysteemBackendBepaalt de doelgebruiker uit de sessie.Het systeem negeert client-side gebruikers-ID’s of gemanipuleerde routewaarden.Een gebruiker wijzigt uitsluitend het eigen profiel.
5SysteemProfielserviceLaadt de huidige profielwaarden opnieuw voor validatiecontext.De actuele bronwaarden worden als uitgangspunt genomen.Voorkomt opslag op basis van verouderde of gemanipuleerde clientcontext.
6SysteemAutorisatieserviceLaadt toegestane niveauopties.Alleen niveaus die voor de gebruiker functioneel toegestaan zijn, worden als keuze geaccepteerd.Niveaukeuze is geen vrije invoer.
7GebruikerProfielveldenWijzigt naamgegevens.Het systeem accepteert invoer in de daarvoor bedoelde velden.Voornaam, tussenvoegsel en achternaam worden veilig verwerkt.
8GebruikerNiveauveldKiest een actief niveau wanneer meerdere toegestane niveaus beschikbaar zijn.Het systeem registreert de gekozen waarde als kandidaatwijziging.De waarde moet in de toegestane niveaucontext voorkomen.
9GebruikerProfielpaginaKiest Opslaan.Het systeem start server-side validatie.Client-side validatie is ondersteunend en niet leidend.
10SysteemValidatieserviceValideert naamgegevens.Ongeldige, lege verplichte of gereserveerde waarden worden geweigerd.Waarde # is gereserveerd voor systeemgebruik als tussenvoegsel.
11SysteemValidatieserviceValideert gekozen niveau.Een niveau buiten de toegestane context wordt geweigerd.Autorisatiecontrole vindt server-side plaats.
12SysteemSecurity / encodingNormaliseert en beveiligt tekstwaarden voor opslag en latere rendering.Invoer wordt veilig opgeslagen en later veilig geëncodeerd weergegeven.Geen vrije HTML of scriptinhoud toestaan.
13SysteemProfielserviceSlaat geldige naamwijzigingen op.Users of de functioneel bijbehorende profielopslag wordt bijgewerkt.Actor en wijzigmoment worden vastgelegd waar auditvelden bestaan.
14SysteemGebruikersinstellingserviceSlaat geldige actieve niveaucontext op.UserSettings of functioneel gelijkwaardige opslag wordt bijgewerkt.Wijziging kan invloed hebben op frontpage en oefencontext.
15SysteemEvent/loggingRegistreert de geslaagde profielwijziging.ProfileUpdated of gelijkwaardige logische gebeurtenis wordt beschikbaar gemaakt.Geen gevoelige credentialdata loggen.
16SysteemProfielpaginaToont bevestiging.De pagina toont de opgeslagen waarden en gebruikt POP-GEN-PROF-SAVED wanneer de profielpagina een expliciete popupbevestiging toont.Popuptekst staat in het popupregister.
17GebruikerProfielpaginaControleert de gewijzigde gegevens.De gebruiker blijft op de profielpagina of navigeert verder.Geen verdere mutatie.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0013De gebruiker is niet ingelogd of de sessie is verlopen.Het systeem start de generieke loginflow.Generieke loginflow; geen profieldomeinpopup.Geen.
ALT-0023De gebruiker is ingelogd maar heeft geen toegang tot de normale applicatiecontext.Het systeem weigert toegang via generieke toegang-geweigerd-afhandeling.Generieke toegang-geweigerdmelding.Geen.
ALT-0034Clientinput bevat een andere UserId dan de sessiegebruiker.Het systeem negeert de clientwaarde en gebruikt de sessiegebruiker, of weigert de actie als manipulatie wordt vastgesteld.Generieke veilige foutmelding.Geen.
ALT-0045Het interne gebruikersprofiel bestaat niet of kan niet worden geladen.Het systeem volgt de bestaande account-/provisioningfoutafhandeling.Veilige foutmelding zonder technische details.Geen profielwijziging.
ALT-0057-10Een verplicht naamveld ontbreekt of bevat alleen witruimte.Het systeem weigert opslag en toont veldgerichte validatie.POP-GEN-PROF-VALIDATION-FAILED of inline validatie.Geen.
ALT-0067-10Een tekstveld overschrijdt de technisch toegestane lengte.Het systeem weigert opslag en toont veldgerichte validatie.POP-GEN-PROF-VALIDATION-FAILED of inline validatie.Geen.
ALT-0077-10Het tussenvoegsel bevat de gereserveerde waarde #.Het systeem weigert de waarde omdat # gereserveerd is voor systeemgebruik.POP-GEN-PROF-VALIDATION-FAILED of inline validatie.Geen.
ALT-0087-12Invoer bevat HTML, script of andere ongewenste actieve inhoud.Het systeem weigert of neutraliseert de invoer volgens de centrale veiligheidsregels.POP-GEN-PROF-VALIDATION-FAILED of inline validatie.Geen onveilige inhoud.
ALT-0098-11De gekozen niveaucontext is niet toegestaan voor de gebruiker.Het systeem weigert opslag en toont dat de gekozen context niet beschikbaar is.POP-GEN-PROF-VALIDATION-FAILED of inline validatie.Geen.
ALT-0108De gebruiker heeft maar één toegestane niveaucontext.Het niveauveld kan read-only zijn of alleen die ene waarde tonen.Geen popup.Geen niveauwijziging tenzij de waarde geldig wordt opgeslagen met andere profielwijzigingen.
ALT-0118De gebruiker heeft geen niveau terwijl een niveau verplicht is.De normale profielwijziging kan worden gecombineerd met het instellen van een geldig niveau; de verplichte-niveauflow blijft leidend wanneer de gebruiker zonder niveau wil weggaan.Verplichte-niveaucommunicatie hoort bij UC-GEN-PROF-003.Alleen een geldige niveaukeuze wordt opgeslagen.
ALT-0129De gebruiker kiest Annuleren of navigeert weg zonder op te slaan.Het systeem verlaat de wijzigmodus zonder profielmutatie.Eventuele waarschuwing voor niet-opgeslagen wijzigingen alleen wanneer centraal zo ingericht.Geen.
ALT-0139-14Er is gelijktijdig elders een profielwijziging uitgevoerd.Het systeem gebruikt de actuele serverdata en voorkomt blind overschrijven wanneer concurrencycontrole dit vereist.Veilige melding over verouderde gegevens.Geen of alleen gecontroleerde opslag.
ALT-01413-14Opslaan faalt door technische fout.Het systeem rolt de transactie terug of bewaart consistente bestaande waarden.POP-GEN-PROF-SAVE-FAILED.Geen gedeeltelijke inconsistente mutatie.
ALT-01516Bevestigingspopup kan niet worden getoond.De pagina toont een inline succesmelding of bijgewerkte waarden.Inline melding als fallback.Profielwijziging blijft opgeslagen.
ALT-0162De gebruiker kiest E-mailadres wijzigen.Het systeem start of toont de identity-providerflow voor e-mailadreswijziging.POP-GEN-PROF-IDENTITY-REDIRECT wanneer een toelichting nodig is.Geen directe OefenHub-e-mailmutatie.
ALT-0172De gebruiker kiest Wachtwoord wijzigen.Het systeem start of toont de identity-providerflow voor wachtwoordwijziging.POP-GEN-PROF-IDENTITY-REDIRECT wanneer een toelichting nodig is.Geen OefenHub-wachtwoordmutatie.
ALT-0182De gebruiker kiest Profielfoto wijzigen.Het systeem start UC-GEN-PROF-004.Afhankelijk van UC-GEN-PROF-004.Niet binnen deze usecase.
ALT-01910-14De wijziging leidt tot een actieve niveaucontext die niet meer aansluit op openstaande oefencontext.Het systeem slaat alleen de profielcontext op; oefenruns uit andere niveaus worden niet hervat via deze profielactie.Geen popup tenzij profielpagina dit toelicht.Geen oefenrunmutatie.
ALT-02015Logging of niet-kritieke eventpublicatie faalt na succesvolle opslag.De profielwijziging blijft leidend; het systeem registreert de technische fout volgens loggingbeleid.Geen technische details aan gebruiker.Profielwijziging blijft opgeslagen.

9. Business rules

IDRegel
BR-UC-GEN-PROF-002-001Alleen een ingelogde gebruiker mag de eigen profielgegevens wijzigen.
BR-UC-GEN-PROF-002-002De server bepaalt de te wijzigen gebruiker op basis van de sessie.
BR-UC-GEN-PROF-002-003Een gebruiker mag via de normale profielpagina geen profiel van een andere gebruiker wijzigen.
BR-UC-GEN-PROF-002-004OefenHub beheert applicatieprofielgegevens; identity-providercredentials worden niet in OefenHub verwerkt.
BR-UC-GEN-PROF-002-005Wachtwoorden worden niet door OefenHub opgeslagen, gevalideerd of gelogd.
BR-UC-GEN-PROF-002-006E-mailadreswijzigingen worden niet als directe OefenHub-profielmutatie afgehandeld wanneer verificatie en bronhouderschap bij de identity provider liggen.
BR-UC-GEN-PROF-002-007Naamgegevens moeten server-side gevalideerd worden voordat zij worden opgeslagen.
BR-UC-GEN-PROF-002-008De waarde # is gereserveerd voor systeemgebruik en mag niet door gewone gebruikers als tussenvoegsel worden opgeslagen.
BR-UC-GEN-PROF-002-009Vrije HTML, scriptinhoud en andere actieve inhoud zijn niet toegestaan in profieltekstvelden.
BR-UC-GEN-PROF-002-010Actieve niveaucontext mag alleen worden gewijzigd naar een niveau dat de gebruiker functioneel mag gebruiken.
BR-UC-GEN-PROF-002-011Een profielwijziging mag geen rollen, relaties, autorisaties of accountstatus wijzigen.
BR-UC-GEN-PROF-002-012Een profielwijziging mag geen oefenruns starten, hervatten, afronden of verplaatsen naar een ander niveau.
BR-UC-GEN-PROF-002-013Profielafbeeldingen worden niet in deze usecase gewijzigd; profielfotokeuze hoort bij UC-GEN-PROF-004.
BR-UC-GEN-PROF-002-014Geslaagde profielwijzigingen worden herleidbaar vastgelegd via auditvelden of gelijkwaardige logging, zonder gevoelige identity-providergegevens.
BR-UC-GEN-PROF-002-015Validatie- en foutmeldingen mogen geen technische identifiers, stacktraces, ExternalId-waarden, databasefouten of identity-providerdetails tonen.

Centrale business rules die hierbij horen:

BusinessRule-IDToepassing
BR-GEN-SEC-001Alle afgeschermde acties vereisen server-side rol-, relatie- of objectcontrole.
BR-GEN-PROF-001Een gebruiker mag via de normale profielpagina uitsluitend het eigen profiel bekijken en beheren.
BR-GEN-PROF-002OefenHub beheert applicatieprofielgegevens; identity-providercredentials worden niet in OefenHub verwerkt.
BR-GEN-PROF-004Actieve niveaucontext moet worden afgeleid uit toegestane gebruikers- en rolcontext.
BR-GEN-SEC-002Gebruikersinvoer wordt server-side gevalideerd, veilig verwerkt en veilig gerenderd.
BR-GEN-ACC-001Account- en credentialflows blijven binnen de identity-providerverantwoordelijkheid voor zover daar bronhouderschap ligt.

10. Datavalidatie

Veld / objectValidatie
SessieMoet geldig zijn en aan precies één interne OefenHub-gebruiker gekoppeld kunnen worden.
Client-side gebruikers-IDMag niet bepalen welk profiel wordt gewijzigd.
Users.IdWordt afgeleid uit de server-side sessie.
Users.ExternalIdMag niet zichtbaar of bewerkbaar zijn op de profielpagina.
VoornaamVerplicht wanneer het profielmodel dit vereist; trimmen, veilige lengtecontrole en veilige encoding zijn verplicht.
TussenvoegselOptioneel; trimmen, veilige lengtecontrole en blokkeren van gereserveerde waarde # zijn verplicht.
AchternaamVerplicht wanneer het profielmodel dit vereist; trimmen, veilige lengtecontrole en veilige encoding zijn verplicht.
Naamvelden algemeenVrije HTML, JavaScript, actieve inhoud en ongewenste markup zijn niet toegestaan.
E-mailadresNiet als directe OefenHub-profielmutatie opslaan; wijziging loopt via identity-providerflow.
WachtwoordNiet door OefenHub ontvangen, opgeslagen, gelogd of gevalideerd.
Actief niveauMoet voorkomen in de server-side toegestane niveaucontext van de gebruiker.
Niveau-optiesWorden server-side opgebouwd; client-side opties zijn niet leidend.
ProfielavatarNiet binnen deze usecase wijzigen; avatarwijziging hoort bij UC-GEN-PROF-004.
AuditveldenUpdatedByUserId moet overeenkomen met de sessiegebruiker; UpdatedAtUtc wordt door de server bepaald.
FoutmeldingenGebruikersgericht formuleren; geen GUID’s, stacktraces, ExternalId, databasefouten, tokens of identity-providerdetails tonen.
LoggingGeen wachtwoorden, tokens, secrets, verificatielinks of gevoelige headers loggen.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
3Read / autorisatiesessie, gebruikerscontextControleren of de gebruiker profielwijzigingen mag starten.
4ReadUsersDoelgebruiker bepalen uit de sessie.
5ReadUsersActuele profielwaarden opnieuw laden.
6Readniveau- en autorisatiecontextToegestane niveauopties bepalen.
10ValidatieprofielinvoerNaamgegevens server-side valideren.
11Validatieactieve niveaucontextGekozen niveau server-side valideren.
13UpdateUsersGeldige OefenHub-profielvelden bijwerken, zoals naamgegevens.
13Update / auditUsers.UpdatedByUserId, Users.UpdatedAtUtcLaatste wijziging vastleggen wanneer deze velden aanwezig zijn.
14UpdateUserSettingsGeldige actieve niveaucontext opslaan wanneer die is gewijzigd.
14Update / auditUserSettings.UpdatedByUserId, UserSettings.UpdatedAtUtcLaatste wijziging vastleggen wanneer deze velden aanwezig zijn.
15Event / loggingProfileUpdatedGeslaagde profielwijziging logisch registreren.
ALT-005 t/m ALT-009Event / loggingProfileUpdateRejectedValidatie- of autorisatieafwijzing veilig registreren volgens centraal loggingbeleid.
ALT-014Event / loggingProfileUpdateFailedTechnische opslagfout veilig registreren.
ALT-016 / ALT-017Event / navigatieIdentityProviderAccountFlowStartedIdentity-providerflow starten of naar identity-providerroute verwijzen.

12. Geen datamutaties

EntiteitReden
Identity-providercredentialsWachtwoord, MFA, sessies en credential lifecycle worden niet door OefenHub gemuteerd.
Definitief identity-provider e-mailadresVerificatie en bronhouderschap liggen bij de identity provider; OefenHub schrijft dit niet rechtstreeks als profielmutatie weg.
ProfileAvatarsProfielfoto kiezen hoort bij UC-GEN-PROF-004.
UserRolesProfiel wijzigen kent geen rollen toe en verwijdert geen rollen.
UserRelationshipsProfiel wijzigen maakt, accepteert, wijzigt of beëindigt geen relaties.
RelationshipInvitationsProfiel wijzigen verwerkt geen relatie-uitnodigingen.
SystemMessagesNormale profielwijziging maakt geen systeembericht aan.
PrivateMessageThreadsProfiel wijzigen maakt of wijzigt geen privéberichtthread.
TicketsProfiel wijzigen maakt of wijzigt geen melding.
ExerciseRunsProfiel wijzigen start, hervat, verplaatst of sluit geen oefenrun.
ToegankelijkheidscookieCookie-synchronisatie hoort bij UC-GEN-PROF-006.
Accountlifecycle- of anonimiseringsrecordsAccountverwijdering en anonimiseren vallen buiten dit domein.

13. State diagram

Niet van toepassing als afzonderlijk statusdiagram. Deze usecase wijzigt profiel- en gebruikersinstellingsgegevens, maar introduceert geen eigen statusobject met meerdere formele statusovergangen. De wijziging van actieve niveaucontext is een gebruikersinstelling en geen statusmodel.

14. Decision flow — profielgegevens wijzigen

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Profielgegevens opslaan

16.2 Identity-provideractie vanuit profiel

17. Popupverwijzingen

PopupKeyMomentDoel
POP-GEN-PROF-VALIDATION-FAILEDBij ongeldige profielinvoer of niet-toegestane niveaukeuze.De gebruiker veilig informeren dat de invoer gecorrigeerd moet worden.
POP-GEN-PROF-SAVE-FAILEDBij technische of transactionele opslagfout.De gebruiker informeren dat opslaan niet is gelukt zonder technische details te tonen.
POP-GEN-PROF-SAVEDNa succesvolle opslag wanneer de profielpagina een expliciete popupbevestiging gebruikt.Bevestigen dat de profielwijziging is opgeslagen.
POP-GEN-PROF-IDENTITY-REDIRECTWanneer de gebruiker e-mailadres of wachtwoord wil wijzigen en naar de identity-providerflow wordt geleid.Uitleggen dat deze actie buiten OefenHub door de identity provider wordt afgehandeld.

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

DoeldocumentAfleiding
Functioneel OntwerpBeschrijf de profielpagina als eigen profielpagina met wijzigbare OefenHub-profielgegevens, gescheiden identity-provideracties en aparte routes voor profielfoto, voorkeuren en toegankelijkheid.
Functioneel OntwerpBeschrijft welke profielvelden direct in OefenHub wijzigbaar zijn en welke acties alleen doorverwijzen naar de identity provider.
Functioneel OntwerpBeschrijft dat actieve niveaucontext alleen uit toegestane niveaus gekozen mag worden en dat dit de context van de applicatie kan beïnvloeden.
Functioneel OntwerpBeschrijf veldvalidaties, fouttoestanden, annuleergedrag en veilige gebruikersmeldingen.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, security en omgevingen, Blazor frontendBeschrijft hoe Users, UserSettings, identity-provideraccountdata en eventuele synchronisatievelden van elkaar gescheiden blijven.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, security en omgevingen, Blazor frontendWerk server-side objectautorisatie uit: de sessiegebruiker bepaalt altijd welk profiel gewijzigd wordt.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, security en omgevingen, Blazor frontendWerk transactionele opslag uit voor gecombineerde wijzigingen in profielgegevens en actieve niveaucontext.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, security en omgevingen, Blazor frontendBeschrijft hoe e-mailadres- en wachtwoordacties naar Keycloak of de gekozen identity-providerroute verwijzen zonder credentials in OefenHub te verwerken.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, security en omgevingen, Blazor frontendBeschrijft loggingregels vast voor profielwijzigingen zonder wachtwoorden, tokens, secrets of gevoelige identity-providerdetails te loggen.
Software Requirements SpecificationBevat requirements voor eigen-profiel-autorisatie, profielvalidatie, toegestane niveaukeuze, veilige opslag, identity-providerafbakening en foutafhandeling.
Database-informatieBeschrijft Users en UserSettings als bron voor profielgegevens, actieve niveaucontext en relevante wijzigingsmetadata.
OntwerpbronnenVoeg of actualiseer business rules, commands, events, popupregisterregels en matrices voor profielwijzigingen.

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-002-001SRS-RDM-001
SRS-ACC-003
AC-RDM-001
AC-ACC-003
Een ingelogde gebruiker toestaan om uitsluitend het eigen profiel via de profielpagina te wijzigen
REQ-UC-GEN-PROF-002-002SRS-AUTH-001
SRS-ACC-003
AC-AUTH-001
AC-ACC-003
De te wijzigen gebruiker server-side bepalen op basis van de sessie en niet op basis van clientinput
REQ-UC-GEN-PROF-002-003SRS-AUTH-001
SRS-ACC-003
AC-AUTH-001
AC-ACC-003
Naamgegevens server-side valideren voordat zij worden opgeslagen
REQ-UC-GEN-PROF-002-004SRS-AUTH-001
SRS-ACC-003
AC-AUTH-001
AC-ACC-003
Gereserveerde systeemwaarden zoals # blokkeren voor gewone gebruikersinvoer waar deze waarde niet is toegestaan
REQ-UC-GEN-PROF-002-005SRS-ACC-003
SRS-CAT-006
AC-ACC-003
AC-CAT-006
Actieve niveaucontext alleen kunnen opslaan wanneer het gekozen niveau binnen de toegestane context van de gebruiker valt
REQ-UC-GEN-PROF-002-006SRS-ACC-003
AC-ACC-003
Geldige profielwijzigingen opslaan in de daarvoor bedoelde OefenHub-profiel- en gebruikersinstellingsrecords
REQ-UC-GEN-PROF-002-007SRS-ACC-003
AC-ACC-003
Na succesvolle opslag de bijgewerkte profielwaarden tonen
REQ-UC-GEN-PROF-002-008SRS-ACC-003
SRS-NFR-SEC-001
AC-ACC-003
AC-NFR-SEC-001
Wachtwoordwaarden niet ontvangen, opslaan, valideren of loggen binnen OefenHub-profielwijzigingen
REQ-UC-GEN-PROF-002-009SRS-RDM-001
SRS-ACC-003
SRS-NFR-SEC-001
AC-RDM-001
AC-ACC-003
AC-NFR-SEC-001
E-mailadres- en wachtwoordacties vanuit de profielpagina via de identity-providerflow afhandelen of daarnaar verwijzen
REQ-UC-GEN-PROF-002-010SRS-ACC-003
SRS-SHR-001
SRS-NFR-SEC-001
AC-ACC-003
AC-SHR-001
AC-NFR-SEC-001
Technische opslagfouten veilig afhandelen zonder gedeeltelijke inconsistente profielmutaties zichtbaar te maken
REQ-UC-GEN-PROF-002-011SRS-ACC-003
SRS-TIC-002
SRS-NFR-SEC-001
AC-ACC-003
AC-TIC-002
AC-NFR-SEC-001
Validatie- en foutmeldingen tonen zonder technische identifiers, stacktraces, tokens, ExternalId-waarden of databasefouten
REQ-UC-GEN-PROF-002-012SRS-ACC-003
SRS-NFR-AUD-001
SRS-NFR-LOG-001
AC-ACC-003
AC-NFR-AUD-001
AC-NFR-LOG-001
Profielwijzigingen herleidbaar registreren via auditvelden of gelijkwaardige logging, zonder gevoelige identity-providergegevens