Skip to main content

11. Profiel

11.1 Schermafbeelding

oefenhub_generiek_09_profiel_v1_3.png

11.2 Scherm meta data

VeldWaarde
Scherm-IDSCH-GEN-11-01
SchermnaamProfiel
Doelgroep / onderdeelGeneriek
Bronbestandoefenhub_generiek_09_profiel_v1_3.html
MockupversieV1.3
Screenshotbestandoefenhub_generiek_09_profiel_v1_3.png
Processtap / contextIngelogde gebruiker opent de eigen profielpagina om profielgegevens, profielfoto, actief niveau en accountgerelateerde acties te bekijken of te wijzigen.
DocumentatiestatusUitgewerkt op basis van HTML-mockup, PNG-screenshot, Functioneel Ontwerp, Technisch Ontwerp, Software Requirements Specification en ondersteunende database- en architectuurinformatie.
OpmerkingenHeader, profielmenu, berichtenteller en footer vallen buiten het bereik van dit schermdocument. Zichtbare waarden zoals naam, e-mailadres, niveau, avatarletter, beveiligingsstatus en aanmeldtijd zijn dynamische voorbeeldwaarden.
Route / URL-patroonGenerieke profielroute binnen ingelogde gebruikerscontext, functioneel bijvoorbeeld Profiel.
Autorisatie / vereiste rol-contextIngelogde gebruiker. De gebruiker mag uitsluitend het eigen profiel bekijken en wijzigen. Server-side autorisatie bepaalt de gebruiker op basis van de sessie en niet op basis van clientinput.
Primair domeinobject / hoofdentiteitUsers, UserSettings, ProfileAvatars, externe identity-provideraccountgegevens en rol-/niveaucontext.
Gerelateerde schermen / navigatie09_toegankelijk, 10_voorkeuren, 08_relaties, 06_meldingen, accountomgeving voor wachtwoordwijziging.
Data-karakterProfiel- en accountgegevens met beperkte mutaties. Authenticatiegegevens en wachtwoordbeheer blijven onder verantwoordelijkheid van de identity provider; OefenHub beheert het applicatieprofiel en profielgerelateerde voorkeuren.

11.3 Functionele beschrijving

Het scherm Profiel is de centrale pagina waarop een ingelogde gebruiker de eigen profielgegevens binnen OefenHub beheert. De pagina toont het profiel als applicatieprofiel en scheidt dit bewust van algemene voorkeuren, toegankelijkheidsinstellingen en de onderliggende accountomgeving.

De hoofdinhoud bestaat uit:

  • een breadcrumb Home > Profiel;
  • een introductieblok met uitleg over profielgegevens en verwijzingen naar Voorkeuren en Toegankelijkheid;
  • een kaart Profielfoto met huidige avatarweergave en avataracties;
  • een kaart Persoonsgegevens met profielvelden en actief niveau;
  • een kaart Accountbeveiliging met statusinformatie en een actie voor wachtwoordwijziging.

Header, profielmenu, berichteningang, navigatiebalk en footer worden in dit document niet als UI-element van dit scherm uitgewerkt.

11.3.1 Interpretatie van mockupwaarden

Alle zichtbare waarden in de mockup zijn voorbeeldwaarden. Namen zoals Emma Jansen, het e-mailadres emma.jansen@voorbeeld.nl, het actieve niveau Basisschool – Groep 7, de avatarletter E, de beveiligingsstatussen en de tekst Vandaag om 08:14 worden dynamisch opgebouwd uit de actuele gebruiker, accountstatus en beschikbare niveaucontext.

Mockupwaarden mogen daarom niet als vaste productiegegevens worden beschreven of geïmplementeerd.

11.3.2 Profiel versus voorkeuren en toegankelijkheid

Deze pagina bevat profielgegevens: naamgegevens, e-mailadres, actief niveau en profielfoto. Algemene gebruiksinstellingen horen bij Voorkeuren en instellingen voor leesbaarheid, contrast, dyslexielettertype en tekstgrootte horen bij Toegankelijkheid. De introductietekst benoemt deze scheiding functioneel, maar de andere pagina’s worden niet binnen dit scherm uitgewerkt.

De opslag volgt dezelfde domeinscheiding:

  • basisprofielgegevens staan bij de gebruiker in Users;
  • niet-profielgebonden instellingen staan in UserSettings;
  • profielafbeeldingen verwijzen naar vooraf gedefinieerde ProfileAvatars;
  • authenticatie, wachtwoorden, sessies en credential lifecycle verlopen via de identity provider.

11.3.3 Profielfoto

De kaart Profielfoto toont de huidige profielweergave. Wanneer een gebruiker geen avatar heeft gekozen, toont de pagina een initialenweergave op basis van de profielnaam. Wanneer een avatar is gekozen, toont de pagina de vooraf gedefinieerde avatar die via Users.ProfileAvatarId naar ProfileAvatars verwijst.

De actie Afbeelding kiezen opent een selectieflow met toegestane vooraf gedefinieerde profielafbeeldingen. Vrije upload van afbeeldingen is niet toegestaan. De actie Avatar verwijderen verwijdert de avatarverwijzing voor de gebruiker, waarna opnieuw de initialenweergave wordt gebruikt.

11.3.4 Persoonsgegevens

De kaart Persoonsgegevens bevat de bewerkbare profielvelden:

  • Voornaam;
  • Tussenvoegsel;
  • Achternaam;
  • E-mailadres;
  • Actief niveau;
  • Profiel opslaan.

Bij opslaan verwerkt het systeem de profielmutatie server-side. De gebruiker mag alleen het eigen profiel wijzigen. De server bepaalt de doelgebruiker uit de sessie en mag geen gebruikers-ID uit het formulier vertrouwen.

Het veld Voornaam is verplicht. Tussenvoegsel is optioneel, maar de systeemwaarde # is gereserveerd voor geanonimiseerde accounts en mag via de normale gebruikersinterface niet worden opgeslagen. Achternaam is profieldata en mag afhankelijk van de definitieve validatieregel leeg of gevuld zijn; de server gebruikt de opgeslagen naamdelen om de zichtbare naam en DisplayName consistent te houden.

Het veld E-mailadres toont het account-e-mailadres dat OefenHub kent. Omdat authenticatie en e-mailverificatie via de identity provider verlopen, mag OefenHub een e-mailwijziging wel vanuit deze pagina starten, maar de daadwerkelijke accountverwerking en verificatie verlopen via de onderliggende accountomgeving. Een niet-geverifieerde of conflicterende wijziging mag niet stilzwijgend als definitieve accountwijziging worden behandeld.

11.3.5 Actief niveau

Het veld Actief niveau toont de actuele niveaucontext die voor de gebruiker beschikbaar is. De opties in de keuzelijst zijn geen vaste waarden uit de mockup. Zij worden opgebouwd uit de toegestane niveaus voor de gebruiker en rolcontext.

Voor een leerling bestaat de beschikbare set uit niveaus waartoe de leerling toegang heeft. Voor gebruikers zonder relevante niveaucontext wordt het veld niet als vrije invoer gebruikt. De selectie wordt opgeslagen als gebruikersinstelling, bijvoorbeeld via UserSettings.SelectedTeacherLevelId of een functioneel gelijkwaardige contextwaarde.

Wanneer een gebruiker na registratie een verplicht niveau mist, moet de applicatie de gebruiker naar de profielpagina leiden. Wanneer de gebruiker de profielpagina verlaat zonder een verplicht niveau in te stellen, toont de profielpagina een gewone popup zonder donkere overlay om duidelijk te maken dat dit veld nodig is voor normaal gebruik.

11.3.6 Accountbeveiliging

De kaart Accountbeveiliging toont statusinformatie over accountbeveiliging, maar beheert credentials niet rechtstreeks binnen OefenHub. De kaart bevat minimaal:

  • Wachtwoord met statuslabel;
  • E-mailadres bevestigd met statuslabel;
  • Laatste aanmelding met statuslabel;
  • de actie Wachtwoord wijzigen;
  • een toelichting dat authenticatie en wachtwoorden via de onderliggende accountoplossing worden beheerd.

De actie Wachtwoord wijzigen start een veilige stap in de identity provider, bijvoorbeeld Keycloak. OefenHub mag wachtwoorden nooit lezen, opslaan of als formulierwaarde verwerken. Statusinformatie zoals e-mailverificatie of laatste aanmelding wordt uit de identity-providercontext, de gebruikerscontext of een veilige gesynchroniseerde accountstatus opgebouwd en is in deze kaart read-only.

11.3.7 Leegstaten, foutstaten en disabled states

Wanneer een profiel nog geen avatar heeft, toont de pagina initialen. Wanneer geen actieve avatarselectie beschikbaar is, wordt Afbeelding kiezen uitgeschakeld of wordt een foutmelding getoond na de actie.

Wanneer een gebruiker geen beschikbare niveaus heeft, toont het veld Actief niveau geen willekeurige mockupwaarde. Als een niveau verplicht is, krijgt de gebruiker een duidelijke melding dat eerst een niveau gekozen of beschikbaar gemaakt moet worden. Als een niveau voor de huidige rolcontext niet relevant is, mag het veld verborgen of read-only worden weergegeven.

Wanneer opslaan mislukt door validatie, identity-providerconflict, netwerkfout of serverfout, blijft de ingevoerde gebruikersinvoer zichtbaar en toont het systeem een begrijpelijke foutmelding. Technische foutdetails, interne GUID’s, externe identity-provider-ID’s en stacktraces worden niet aan de gebruiker getoond.

Wanneer het account inactief, geanonimiseerd of in een afgeschermde beheerstatus staat, mag deze profielpagina niet als normale bewerkpagina functioneren. Server-side autorisatie en accountstatuscontrole bepalen dan welke acties beschikbaar zijn.

11.4 UI-elementen en velddefinities

Element-IDTypeGUI-verwijzingOmschrijvingZichtbaar labelOpmerkingTechnische naam
SCH-GEN-11-01-N01NavigationBreadcrumbNavigatiecontext binnen de hoofdinhoud van de pagina.Home > ProfielHeadernavigatie valt buiten scope; breadcrumb hoort bij de pagina-inhoud.ProfileBreadcrumb
SCH-GEN-11-01-S01SectionIntroblokIntroductiekaart van het profielscherm.ProfielBeschrijft het doel van de pagina en verwijst tekstueel naar voorkeuren en toegankelijkheid.ProfileIntroSection
SCH-GEN-11-01-F01FieldIntroblok — titelTitel van het scherm.ProfielRead-only schermlabel.ProfilePageTitle
SCH-GEN-11-01-F02FieldIntroblok — toelichtingToelichting op profielgegevens en scheiding met voorkeuren/toegankelijkheid.Op deze pagina beheer je je profielgegevens binnen OefenHub...Tekst is informatief; links of vetgedrukte woorden verwijzen functioneel naar andere profielonderdelen.ProfileIntroText
SCH-GEN-11-01-S02SectionKaart rechtsbovenKaart met huidige profielfoto of initialenweergave.ProfielfotoToont avatarweergave en avataracties.ProfileAvatarSection
SCH-GEN-11-01-F03FieldProfielfoto — huidige weergaveGrote avatarweergave.Huidige weergaveToont gekozen avatar of initialen wanneer geen avatar is gekozen.CurrentAvatarDisplay
SCH-GEN-11-01-F04FieldProfielfoto — hintUitleg bij de avatarweergave.Je initialen worden gebruikt zolang er geen afbeelding is gekozen.Alleen informatief.AvatarFallbackHint
SCH-GEN-11-01-B01ButtonProfielfoto — actieOpent selectie van toegestane avatars.Afbeelding kiezenGeen vrije upload; alleen vooraf gedefinieerde avatars.ChooseAvatarButton
SCH-GEN-11-01-A01ActionProfielfoto — actieVerwijdert de huidige avatarverwijzing.Avatar verwijderenZet profielafbeelding terug naar initialenweergave.RemoveAvatarAction
SCH-GEN-11-01-S03SectionKaart PersoonsgegevensFormuliersectie voor profielgegevens.PersoonsgegevensBevat naam, e-mail, actief niveau en opslaan.PersonalDetailsSection
SCH-GEN-11-01-F05FieldPersoonsgegevens — voornaamInvoer voor voornaam.VoornaamVerplicht profielveld.FirstNameInput
SCH-GEN-11-01-F06FieldPersoonsgegevens — tussenvoegselInvoer voor tussenvoegsel.TussenvoegselOptioneel; # is gereserveerd voor systeemgebruik.MiddleNameInput
SCH-GEN-11-01-F07FieldPersoonsgegevens — achternaamInvoer voor achternaam.AchternaamOnderdeel van naamweergave.LastNameInput
SCH-GEN-11-01-F08FieldPersoonsgegevens — e-mailadresInvoer of startpunt voor wijziging van e-mailadres.E-mailadresVerwerking en verificatie lopen via de identity provider.EmailAddressInput
SCH-GEN-11-01-F09FieldPersoonsgegevens — actief niveauKeuzelijst voor actuele niveaucontext.Actief niveauOpties zijn dynamisch en afhankelijk van gebruiker en autorisatiecontext.ActiveLevelSelect
SCH-GEN-11-01-F10FieldPersoonsgegevens — niveauhintUitleg bij niveaukeuze.Als je meerdere niveaus hebt, kun je hier wisselen...Alleen tonen wanneer de uitleg relevant is.ActiveLevelHint
SCH-GEN-11-01-B02ButtonPersoonsgegevens — onderaanSlaat gewijzigde profielgegevens op.Profiel opslaanMutatie vindt server-side plaats voor de ingelogde gebruiker.SaveProfileButton
SCH-GEN-11-01-S04SectionKaart AccountbeveiligingRead-only statusinformatie en veilige accountactie.AccountbeveiligingBeveiligingsacties verwijzen naar de identity provider.AccountSecuritySection
SCH-GEN-11-01-F11FieldAccountbeveiliging — wachtwoordStatusregel over wachtwoordbeheer.WachtwoordGeen wachtwoordwaarde tonen.PasswordSecurityStatus
SCH-GEN-11-01-F12FieldAccountbeveiliging — e-mailadres bevestigdStatusregel over e-mailverificatie.E-mailadres bevestigdAfgeleid uit identity-providerstatus of gesynchroniseerde accountstatus.EmailVerifiedStatus
SCH-GEN-11-01-F13FieldAccountbeveiliging — laatste aanmeldingLaatste bekende aanmeld- of activiteitsinformatie.Laatste aanmeldingDatum/tijd is dynamisch en lokaal geformatteerd.LastSignInStatus
SCH-GEN-11-01-F14FieldAccountbeveiliging — statuschip wachtwoordVisueel statuslabel bij wachtwoord.BeveiligdDynamisch statuslabel; geen beveiligingsgeheim.PasswordStatusBadge
SCH-GEN-11-01-F15FieldAccountbeveiliging — statuschip e-mailVisueel statuslabel bij e-mailverificatie.BevestigdDynamisch statuslabel.EmailVerifiedBadge
SCH-GEN-11-01-F16FieldAccountbeveiliging — statuschip aanmeldingVisueel statuslabel bij laatste aanmelding.RecentAfgeleid label, geen vaste waarde.LastSignInBadge
SCH-GEN-11-01-B03ButtonAccountbeveiliging — actieStart beveiligde wachtwoordwijziging in de accountomgeving.Wachtwoord wijzigenOefenHub verwerkt geen wachtwoordwaarde.ChangePasswordButton
SCH-GEN-11-01-M01MessageAccountbeveiliging — infonotitieToelichting over scheiding tussen OefenHub-profiel en accountomgeving.Authenticatie en wachtwoorden worden beheerd via de onderliggende accountoplossing.Informatieve melding.AccountSecurityInfoMessage
SCH-GEN-11-01-M02Message / modalVerplicht niveau ontbreektPopup binnen de profielpagina wanneer een verplicht niveau ontbreekt bij verlaten of opslaan.Stel eerst je niveau inGeen donkere overlay binnen de profielpagina.MissingRequiredLevelMessage
SCH-GEN-11-01-M03MessageValidatiefoutGebruikersgerichte foutmelding bij ongeldige invoer of mislukte verwerking.<foutmelding>Geen technische details of interne identifiers tonen.ProfileValidationMessage

11.5 Waardelagen

Element-IDGUI-verwijzingZichtbaar labelTechnische naamDatabronWaardebronDatatypeBewerkbaarValidatie / regel
SCH-GEN-11-01-N01BreadcrumbHome > ProfielProfileBreadcrumbRouteconfiguratieAfgeleid uit huidige routeNavigation labelNeeGeen technische URL of ID tonen.
SCH-GEN-11-01-F01Introblok — titelProfielProfilePageTitleCodegedreven schermlabel of contentblok indien beheerbaar gemaaktWeergavetekstStringNeeMoet overeenkomen met de schermfunctie.
SCH-GEN-11-01-F02Introblok — toelichtingProfieltoelichtingProfileIntroTextCodegedreven tekst of contentblok indien beheerbaar gemaaktWeergavetekstString / rich text beperktNeeMag voorkeuren en toegankelijkheid verwijzen, maar werkt deze pagina’s niet inhoudelijk uit.
SCH-GEN-11-01-F03ProfielfotoHuidige weergaveCurrentAvatarDisplayUsers.ProfileAvatarId, ProfileAvatars, Users.FirstName, Users.LastName, Users.DisplayNameDatabase of afgeleide initialenAvatar displayNeeToon gekozen avatar wanneer actief; anders initialenweergave.
SCH-GEN-11-01-B01ProfielfotoAfbeelding kiezenChooseAvatarButtonProfileAvatars.IsActiveUser actionActionJaAlleen vooraf gedefinieerde actieve avatars selecteerbaar; vrije upload niet toestaan.
SCH-GEN-11-01-A01ProfielfotoAvatar verwijderenRemoveAvatarActionUsers.ProfileAvatarIdUser action / databasemutatieActionJaZet avatarverwijzing naar null voor de ingelogde gebruiker; initialen blijven beschikbaar.
SCH-GEN-11-01-F05PersoonsgegevensVoornaamFirstNameInputUsers.FirstNameDatabasewaarde / user inputStringJaVerplicht; trimmen; maximale lengte conform database; veilig encoden bij rendering.
SCH-GEN-11-01-F06PersoonsgegevensTussenvoegselMiddleNameInputUsers.MiddleNameDatabasewaarde / user inputString nullableJaOptioneel; waarde # is gereserveerd voor geanonimiseerde accounts en mag niet via normale UI worden opgeslagen.
SCH-GEN-11-01-F07PersoonsgegevensAchternaamLastNameInputUsers.LastNameDatabasewaarde / user inputString nullableJaTrim en maximale lengte afdwingen; veilig encoden bij rendering.
SCH-GEN-11-01-F08PersoonsgegevensE-mailadresEmailAddressInputUsers.Email + identity-provideraccountDatabasewaarde en identity-providerstatusE-mailadresJa, als wijziging is toegestaanGeldig e-mailformaat; uniek/case-insensitive; definitieve wijziging mag pas na identity-providerverwerking en verificatie gelden.
SCH-GEN-11-01-F09PersoonsgegevensActief niveauActiveLevelSelectUserSettings.SelectedTeacherLevelId, toegestane TeacherLevels of gelijkwaardige niveaucontextDatabasewaarde / afgeleide toegestane optiesGUID-selectie als displaylabelJa, wanneer meerdere geldige opties bestaanAlleen niveaus tonen waarvoor de gebruiker functioneel toegang heeft; geen technische ID tonen.
SCH-GEN-11-01-F10PersoonsgegevensNiveauhintActiveLevelHintSchermlogicaAfgeleid uit beschikbaarheid van meerdere niveausStringNeeAlleen tonen wanneer het helpt bij keuze of wisselen tussen niveaus.
SCH-GEN-11-01-B02PersoonsgegevensProfiel opslaanSaveProfileButtonIngevoerde profielwaarden + ingelogde gebruikerUser actionActionJaServer-side validatie en autorisatie verplicht; alleen eigen profiel muteren.
SCH-GEN-11-01-F11AccountbeveiligingWachtwoordPasswordSecurityStatusIdentity providerAfgeleide accountstatusString/statusNeeGeen wachtwoordwaarde tonen of opslaan in OefenHub.
SCH-GEN-11-01-F12AccountbeveiligingE-mailadres bevestigdEmailVerifiedStatusIdentity provider of gesynchroniseerde accountstatusAfgeleide accountstatusBoolean/status displayNeeStatus moet de actuele verificatiecontext weergeven.
SCH-GEN-11-01-F13AccountbeveiligingLaatste aanmeldingLastSignInStatusIdentity provider, Users.LastSeenAtUtc of veilige sessie-/accountcontextAfgeleid tijdstipDateTime displayNeeUTC-bron lokaal formatteren; geen gevoelige sessiegegevens tonen.
SCH-GEN-11-01-F14AccountbeveiligingBeveiligdPasswordStatusBadgeIdentity-providerstatusAfgeleid labelString/statusNeeLabel is informatief en mag geen beveiligingsdetail lekken.
SCH-GEN-11-01-F15AccountbeveiligingBevestigdEmailVerifiedBadgeIdentity-providerstatusAfgeleid labelString/statusNeeLabel dynamisch bepalen.
SCH-GEN-11-01-F16AccountbeveiligingRecentLastSignInBadgeLaatste aanmeld-/activiteitstijdAfgeleid labelString/statusNeeLabel dynamisch bepalen op basis van tijdvenster of accountstatus.
SCH-GEN-11-01-B03AccountbeveiligingWachtwoord wijzigenChangePasswordButtonIdentity-providerintegratieUser actionActionJaStart beveiligde externe/accountflow; OefenHub verwerkt geen wachtwoordvelden.
SCH-GEN-11-01-M01AccountbeveiligingAccounttoelichtingAccountSecurityInfoMessageSchermtekstWeergavetekstStringNeeMoet duidelijk maken dat authenticatie buiten OefenHub wordt beheerd.
SCH-GEN-11-01-M02Niveau ontbreektStel eerst je niveau inMissingRequiredLevelMessageValidatie van profiel- en rolcontextRuntime stateMessage/modalNeeTonen wanneer een verplicht niveau ontbreekt; binnen profielpagina zonder donkere overlay.
SCH-GEN-11-01-M03Validatie<foutmelding>ProfileValidationMessageServer-side validatie, identity-providerrespons of opslagresultaatRuntime stateMessageNeeGebruikersgericht formuleren; geen GUID’s, stacktraces, ExternalId of technische foutdetails tonen.

11.6 Schermtrace naar SRS en acceptatiecriteria

De onderstaande tabel legt per schermrequirement de koppeling naar het centrale schermrequirements-trace-register, SRS-requirements en acceptatiecriteria vast. De normatieve requirementtekst staat in de SRS; dit schermdocument beschrijft alleen de lokale schermcontext.

Deze tabel bevat alleen schermtraceability. De normatieve requirementtekst en acceptatiecriteria staan centraal in de SRS.

SchermrequirementDektSchermcontext
REQ-SCH-GEN-11-01-01SRS-AUTH-001
SRS-ACC-003
AC-AUTH-001
AC-ACC-003
Voor iedere ingelogde gebruiker een profielpagina kunnen tonen met uitsluitend de eigen profielgegevens
REQ-SCH-GEN-11-01-02SRS-AUTH-001
SRS-ACC-003
AC-AUTH-001
AC-ACC-003
Server-side afdwingen dat een gebruiker via deze pagina alleen het eigen profiel kan bekijken en wijzigen
REQ-SCH-GEN-11-01-03SRS-RDM-007
SRS-RDM-002
SRS-RDM-001
SRS-ACC-003
AC-RDM-007
AC-RDM-002
AC-RDM-001
AC-ACC-003
Header, profielmenu, berichtenteller en footer mogen geen onderdeel vormen van de functionele uitwerking van dit profielscherm
REQ-SCH-GEN-11-01-04SRS-ACC-003
AC-ACC-003
Het profielscherm uitleggen dat algemene voorkeuren en toegankelijkheidsinstellingen op afzonderlijke pagina’s beheerd worden
REQ-SCH-GEN-11-01-05SRS-ACC-003
AC-ACC-003
Profielgegevens tonen en verwerken op basis van dynamische gebruikerdata en mag mockupwaarden niet hardcoded gebruiken
REQ-SCH-GEN-11-01-06SRS-ARCH-002
AC-ARCH-002
Minimaal voornaam, tussenvoegsel, achternaam, e-mailadres en actief niveau als profielvelden kunnen tonen
REQ-SCH-GEN-11-01-07SRS-ACC-003
AC-ACC-003
De voornaam als verplicht profielgegeven valideren
REQ-SCH-GEN-11-01-08SRS-NFR-PRV-001
SRS-ACC-003
AC-NFR-PRV-001
AC-ACC-003
Het systeem mag de waarde # niet via de normale profielinterface als tussenvoegsel accepteren, omdat deze waarde gereserveerd is voor systeemgebruik bij anonimisering
REQ-SCH-GEN-11-01-09SRS-ACC-003
AC-ACC-003
Naamvelden veilig opslaan en renderen zodat ingevoerde tekst niet als actieve HTML of script wordt uitgevoerd
REQ-SCH-GEN-11-01-10SRS-ACC-003
AC-ACC-003
Na profielwijzigingen de zichtbare naam of DisplayName consistent houden met de opgeslagen profielgegevens
REQ-SCH-GEN-11-01-11SRS-ARCH-002
AC-ARCH-002
E-mailadressen valideren op formaat en unieke, case-insensitive verwerking
REQ-SCH-GEN-11-01-12SRS-ARCH-002
AC-ARCH-002
Een wijziging van e-mailadres geen buiten de identity-providerverwerking en verificatie om als definitieve authenticatiewijziging gelden
REQ-SCH-GEN-11-01-13SRS-ARCH-002
AC-ARCH-002
Het systeem mag Users.ExternalId of andere identity-providerkoppelsleutels niet in de profielinterface tonen of bewerkbaar maken
REQ-SCH-GEN-11-01-14SRS-AUTH-001
SRS-ACC-003
AC-AUTH-001
AC-ACC-003
De beschikbare opties voor Actief niveau opbouwen uit niveaus waarvoor de gebruiker functioneel toegang heeft
REQ-SCH-GEN-11-01-15SRS-AUTH-001
SRS-ACC-003
AC-AUTH-001
AC-ACC-003
Het systeem mag bij Actief niveau geen niveau tonen of opslaan waarvoor de ingelogde gebruiker geen geldige toegang of context heeft
REQ-SCH-GEN-11-01-16SRS-ACC-003
AC-ACC-003
Wanneer een verplicht niveau ontbreekt, de profielpagina de gebruiker duidelijk maken dat dit niveau ingesteld wordt voordat normaal gebruik mogelijk is
REQ-SCH-GEN-11-01-17SRS-ACC-003
AC-ACC-003
Wanneer een gebruiker de profielpagina verlaat zonder verplicht niveau in te stellen, de melding binnen de profielpagina als gewone popup zonder donkere overlay kunnen verschijnen
REQ-SCH-GEN-11-01-18SRS-ACC-003
AC-ACC-003
Het gekozen actieve niveau persistent opslaan als gebruikersinstelling of gelijkwaardige niveaucontext
REQ-SCH-GEN-11-01-19SRS-ACC-003
AC-ACC-003
Een profielafbeelding tonen op basis van een vooraf gedefinieerde avatar of, bij ontbreken daarvan, een initialenweergave
REQ-SCH-GEN-11-01-20SRS-ACC-003
AC-ACC-003
Het systeem mag gebruikers geen vrije profielafbeelding laten uploaden via deze pagina
REQ-SCH-GEN-11-01-21SRS-ACC-003
AC-ACC-003
De actie Afbeelding kiezen mag uitsluitend actieve, vooraf goedgekeurde profielavatars aanbieden
REQ-SCH-GEN-11-01-22SRS-AUTH-001
SRS-ACC-003
AC-AUTH-001
AC-ACC-003
De actie Avatar verwijderen de avatarverwijzing van de ingelogde gebruiker verwijderen zonder het gebruikersrecord zelf te verwijderen
REQ-SCH-GEN-11-01-23SRS-ARCH-002
AC-ARCH-002
Accountbeveiligingsinformatie tonen zonder wachtwoorden, tokens, secrets of gevoelige sessiedetails zichtbaar te maken
REQ-SCH-GEN-11-01-24SRS-ARCH-002
AC-ARCH-002
De actie Wachtwoord wijzigen een veilige account- of identity-providerflow starten en mag geen wachtwoordwaarde in OefenHub verwerken
REQ-SCH-GEN-11-01-25SRS-ARCH-002
AC-ARCH-002
Statusinformatie zoals e-mailbevestiging en laatste aanmelding dynamisch tonen op basis van identity-providerstatus, gebruikerscontext of veilige gesynchroniseerde accountstatus
REQ-SCH-GEN-11-01-26SRS-ACC-003
AC-ACC-003
Datum- en tijdwaarden, zoals laatste aanmelding of laatste activiteit, vanuit UTC of accountbron consistent lokaal worden weergegeven
REQ-SCH-GEN-11-01-27SRS-ACC-003
AC-ACC-003
Bij validatie- of opslagfouten het systeem een begrijpelijke foutmelding tonen en de invoer van de gebruiker behouden waar dat veilig kan
REQ-SCH-GEN-11-01-28SRS-AUTH-004
SRS-ARCH-002
AC-AUTH-004
AC-ARCH-002
Het profielscherm mag geen interne GUID’s, externe identity-provider-ID’s, stacktraces of technische foutdetails aan de gebruiker tonen
REQ-SCH-GEN-11-01-29SRS-AUTH-001
SRS-NFR-PRV-001
AC-AUTH-001
AC-NFR-PRV-001
Gedeactiveerde of geanonimiseerde accounts server-side afvangen en mag deze pagina dan niet als normale bewerkpagina laten functioneren
REQ-SCH-GEN-11-01-30SRS-NFR-AUD-001
SRS-ACC-003
AC-NFR-AUD-001
AC-ACC-003
Profielmutaties herleidbaar zijn via de algemene audit-, logging- of accountlifecycle-afspraken die voor OefenHub gelden

11.7 Technische koppeling

Voor technische uitwerking zijn vooral relevant: