Profiel, voorkeuren en toegankelijkheid
Deze map bevat de generieke usecases voor profiel, voorkeuren en toegankelijkheid binnen OefenHub. Dit domein bepaalt hoe een ingelogde gebruiker het eigen applicatieprofiel bekijkt en beheert, hoe verplichte profielcontext zoals niveau wordt afgedwongen, hoe een profielafbeelding wordt gekozen en hoe persoonlijke instellingen zoals toegankelijkheid en voorkeuren worden opgeslagen en toegepast.
De usecases in deze map zijn procesgericht. Schermdocumentatie blijft de bron voor exacte UI-opbouw, labels, posities, voorbeeldwaarden, iconen, visuele statusweergave en responsive gedrag. Deze usecases beschrijven vooral het gedrag achter de schermen: welke gebruiker uit de server-side sessie wordt afgeleid, welke profiel- en instellingenrecords worden gelezen of gewijzigd, welke validaties gelden, welke acties via de identity-provider verlopen en welke instellingen direct of bij een volgende contextwisseling effect hebben.
Usecases
| Usecase | Omschrijving |
|---|---|
| UC-GEN-PROF-001 — Profiel bekijken | Bekijken van het eigen OefenHub-profiel, inclusief profielgegevens, profielavatar, actief niveau, accountbeveiligingsinformatie en rolcontextafhankelijke relatie-informatie. |
| UC-GEN-PROF-002 — Profielgegevens wijzigen | Wijzigen van eigen applicatieprofielgegevens en actieve niveaucontext, met duidelijke afbakening richting identity-providerflows voor e-mailadres en wachtwoord. |
| UC-GEN-PROF-003 — Verplicht niveau instellen | Afhandelen van een ontbrekende verplichte niveaucontext, inclusief attendering, profielroute, server-side validatie en blokkade op normale vervolgcontext zolang het niveau ontbreekt. |
| UC-GEN-PROF-004 — Profielfoto kiezen | Kiezen van een profielafbeelding uit vooraf gedefinieerde veilige profielavatars, zonder vrije upload en met server-side validatie van de gekozen avatar. |
| UC-GEN-PROF-005 — Toegankelijkheidsinstellingen beheren | Beheren van toegankelijkheidsinstellingen zoals verhoogd contrast, dyslexielettertype en lettergrootte, inclusief direct opslaan en toepassen. |
| UC-GEN-PROF-006 — Toegankelijkheid vóór en na login synchroniseren | Synchroniseren van toegankelijkheidskeuzes tussen technische browserwaarde vóór login en profielinstellingen na login, zonder de cookie als tweede bron van waarheid te behandelen. |
| UC-GEN-PROF-007 — Voorkeuren beheren | Beheren van algemene en rolgebonden voorkeuren die presentatiegedrag beïnvloeden, zonder autorisaties of zichtbare gegevensset te wijzigen. |
Relevante schermdocumentatie
| Scherm / context | Relevantie |
|---|---|
| SCH-GEN-11-01 — Profiel | Primaire profielpagina voor eigen profielgegevens, actief niveau, profielavatar en accountbeveiligingsinformatie. |
| SCH-GEN-09-01 — Toegankelijkheid | Pagina voor toegankelijkheidsinstellingen zoals contrast, dyslexielettertype en lettergrootte. |
| SCH-GEN-10-01 — Voorkeuren | Pagina voor algemene en rolgebonden voorkeuren die presentatiegedrag binnen OefenHub beïnvloeden. |
| Ingelogde frontpage / applicatieschil | Relevant voor detectie van ontbrekend verplicht niveau en het toepassen van toegankelijkheidsinstellingen direct na login. |
| Publieke applicatieschil vóór login | Relevant voor het toepassen van toegankelijkheidskeuzes via technische cookie voordat een profiel beschikbaar is. |
| Identity-providerflow | Relevant voor acties rond e-mailadres, wachtwoord, authenticatie en sessiebeheer; deze worden niet als gewone OefenHub-profielmutatie verwerkt. |
| Ontwerpbronnen — Popup-register | Centrale bron voor popupkeys, popupteksten, knopacties en inputvelden. |
| Ontwerpbronnen — Popup-themes | Centrale bron voor popupvarianten, themes en herbruikbare defaultconfiguratie. |
Domeinafbakening
| Onderwerp | Afbakening |
|---|---|
| OefenHub-applicatieprofiel | Bevat OefenHub-profielgegevens en applicatiecontext, zoals naamgegevens, actieve niveaucontext en gekozen profielavatar. |
| Identity provider | Beheert authenticatie, wachtwoorden, sessies, verificatie en het e-mailadres als authenticatiegegeven. OefenHub muteert deze gegevens niet rechtstreeks. |
| Gebruikersinstellingen | Worden gebruikt voor toegankelijkheid, voorkeuren en verborgen of rolgebonden instellingen. Zij wijzigen geen autorisaties. |
| Profielavatar | Wordt opgeslagen als verwijzing naar een vooraf gedefinieerde veilige profielafbeelding. Vrije upload valt buiten dit domein. |
| Verplichte niveaucontext | Wordt afgedwongen wanneer de gebruiker zonder benodigd niveau geen normale vervolgcontext mag gebruiken. |
| Toegankelijkheid | Omvat instellingen die leesbaarheid en bediening beïnvloeden en direct binnen OefenHub worden toegepast. |
| Technische cookie / browserwaarde | Wordt uitsluitend gebruikt om noodzakelijke toegankelijkheidskeuzes vóór login toe te passen en na login te synchroniseren met profielinstellingen. |
| Voorkeuren | Beïnvloeden presentatiegedrag zoals sortering, naamweergave of vergelijkbare gebruikerskeuzes, maar wijzigen nooit rechten of zichtbare gegevenssets. |
| Relatie-informatie op profiel | Kan rolcontextafhankelijk zichtbaar zijn, maar het beheren van relaties zelf hoort bij de relatie-usecases. |
| Account lifecycle | Account verwijderen, anonimiseren, deactiveren en volledige lifecycle-audit vallen buiten deze map en horen in een afzonderlijk account-lifecycle- of beheerdomein. |
Hoofdobjecten en instellingen
| Object / instelling | Gebruik |
|---|---|
Users | Hoofdrecord voor het OefenHub-gebruikersprofiel en de applicatiegebonden profielwaarden. |
UserSettings | Generieke opslag voor toegankelijkheidsinstellingen, voorkeuren en verborgen of rolgebonden instellingen. |
ProfileAvatars | Set vooraf gedefinieerde profielafbeeldingen waaruit de gebruiker mag kiezen. |
| Toegestane niveaucontext | Afgeleide of relationele context die bepaalt welke niveaus een gebruiker mag kiezen of gebruiken. |
| Identity-providerstatus | Read-only of doorverwijsinformatie over accountbeveiliging, wachtwoord- of e-mailbeheer en sessiecontext. |
| Technische toegankelijkheidscookie | Browserwaarde met alleen de minimaal noodzakelijke toegankelijkheidsinstellingen voor toepassing vóór login. |
| Rolcontext | Bepaalt welke profielinformatie, voorkeuren of niveaukeuzes functioneel relevant en toegestaan zijn. |
Bijzondere regels
| Onderwerp | Regel |
|---|---|
| Server-side sessie | Het systeem bepaalt de profielgebruiker altijd uit de server-side sessie. Clientinput of routeparameters mogen nooit bepalen welk profiel wordt gelezen of gewijzigd. |
| Eigen profiel | Een gebruiker bekijkt en wijzigt uitsluitend het eigen profiel. Beheerderacties op andere accounts horen bij accountbeheer, niet bij deze generieke profielusecases. |
| Identity-afbakening | Wachtwoord, sessies, verificatie en e-mailadres als authenticatiegegeven worden niet rechtstreeks door OefenHub-profielmutaties gewijzigd. |
| E-mailadres en wachtwoord | Acties voor e-mailadres of wachtwoord leiden naar de identity-providerflow of een gelijkwaardige identity-integratie, zonder OefenHub-wachtwoordopslag. |
| Gereserveerde waarden | De waarde # is gereserveerd voor systeemgebruik bij anonimiseren en mag niet als regulier tussenvoegsel worden opgeslagen. |
| Profielfoto | De gebruiker kan alleen kiezen uit vooraf gedefinieerde profielafbeeldingen. Vrije upload of externe afbeeldings-URL's zijn niet toegestaan. |
| Verplicht niveau | Wanneer een verplicht niveau ontbreekt, mag de gebruiker niet ongemerkt doorgaan naar normale contexten waarvoor dat niveau nodig is. |
| Toegankelijkheid direct toepassen | Toegankelijkheidsinstellingen worden na opslaan direct toegepast binnen de actuele applicatiecontext. |
| Cookie geen bron van waarheid | De technische cookie ondersteunt vóór-login toepassing, maar de profielinstellingen blijven na login leidend. |
| Voorkeuren wijzigen geen rechten | Voorkeuren mogen presentatie, sortering of naamweergave beïnvloeden, maar nooit autorisaties, relatiecontext of zichtbare gegevensset aanpassen. |
| Featuretoggle toegankelijkheid | Wanneer toegankelijkheid sitebreed is uitgeschakeld, worden de toegankelijkheidspagina en bediening niet aangeboden en worden bestaande waarden tijdelijk niet toegepast. |
| Popups | Usecases verwijzen alleen naar PopupKey. Titel, tekst, knoppen, inputvelden en theme staan centraal in het popup-register en popup-themes. |
Popupverwijzingen binnen profiel-usecases
| PopupKey | Gebruik |
|---|---|
POP-GEN-PROF-VALIDATION-FAILED | Profielgegevens voldoen niet aan de server-side validatieregels. |
POP-GEN-PROF-SAVE-FAILED | Opslaan van profielgegevens mislukt door technische of transactionele fout. |
POP-GEN-PROF-SAVED | Terugkoppeling na succesvol opslaan van profielgegevens. |
POP-GEN-PROF-IDENTITY-REDIRECT | Uitleg of bevestiging wanneer een actie via de identity-provider moet verlopen. |
POP-GEN-PROF-NO-LEVEL | Attendering na login of contextwisseling wanneer een verplicht niveau ontbreekt. |
POP-GEN-PROF-LEVEL-REQUIRED | Waarschuwing wanneer de gebruiker de profielcontext wil verlaten zonder verplicht niveau in te stellen. |
POP-GEN-PROF-LEVEL-SAVED | Terugkoppeling na succesvol opslaan van de verplichte niveaucontext. |
POP-GEN-PROF-LEVEL-SAVE-FAILED | Opslaan van de verplichte niveaucontext mislukt. |
POP-GEN-PROF-AVATAR-SAVED | Terugkoppeling na succesvol kiezen of wijzigen van de profielavatar. |
POP-GEN-PROF-AVATAR-NOT-ALLOWED | De gekozen profielavatar bestaat niet, is niet actief of is niet toegestaan. |
POP-GEN-PROF-AVATAR-SAVE-FAILED | Opslaan van de profielavatar mislukt. |
POP-GEN-PROF-ACCESSIBILITY-SAVED | Terugkoppeling na succesvol opslaan van toegankelijkheidsinstellingen. |
POP-GEN-PROF-ACCESSIBILITY-VALIDATION-FAILED | Toegankelijkheidsinstellingen bevatten ongeldige of niet-toegestane waarden. |
POP-GEN-PROF-ACCESSIBILITY-SAVE-FAILED | Opslaan van toegankelijkheidsinstellingen mislukt. |
POP-GEN-PROF-ACCESSIBILITY-DISABLED | Toegankelijkheidsfunctionaliteit is sitebreed uitgeschakeld. |
POP-GEN-PROF-PREFERENCES-SAVED | Terugkoppeling na succesvol opslaan van voorkeuren. |
POP-GEN-PROF-PREFERENCES-VALIDATION-FAILED | Voorkeuren bevatten ongeldige sleutel-, type-, waarde- of rolcontextcombinaties. |
POP-GEN-PROF-PREFERENCES-SAVE-FAILED | Opslaan van voorkeuren mislukt. |
Diagramgebruik binnen profiel-usecases
De profiel-usecases gebruiken diagrammen alleen wanneer zij het proces duidelijker maken.
| Diagramtype | Gebruik |
|---|---|
| Sequence diagram | Voor interacties tussen gebruiker, frontend, backend, profielservice, gebruikersinstellingservice, database, cookiebeheer en identity-providerintegratie. |
| State diagram | Alleen wanneer een statusachtig object of verplichte context geraakt wordt, zoals ontbrekend of ingesteld verplicht niveau. |
| Decision flow | Voor validatievolgorde, eigen-profielcontrole, identity-providerdoorverwijzing, featuretogglecontrole en verplichte niveaukeuzes. |
| Data lifecycle | Voor inzicht in welke profiel-, avatar-, instelling- of cookiewaarden ontstaan, worden bijgewerkt of juist alleen gelezen worden. |