Skip to main content

UC-GEN-PROF-007 — Voorkeuren beheren

1. Kerngegevens

VeldWaarde
Usecase-IDUC-GEN-PROF-007
NaamVoorkeuren beheren
DomeinProfiel, voorkeuren en toegankelijkheid
Primaire actorIngelogde gebruiker
Secundaire actor(en)Systeem, sessieservice, gebruikersinstellingservice, voorkeurenservice, validatieservice, rolcontextservice, logging/auditcomponent
RolcontextEigen gebruikerscontext; bij rolgebonden voorkeuren ook de actieve of gekozen rolcontext waarvoor de voorkeur functioneel relevant is
Betrokken schermenSCH-GEN-10-01 — Voorkeuren
Gerelateerde usecasesUC-GEN-PROF-001 — Profiel bekijken; UC-GEN-PROF-002 — Profielgegevens wijzigen; UC-GEN-PROF-005 — Toegankelijkheidsinstellingen beheren; UC-GEN-PROF-006 — Toegankelijkheid vóór en na login synchroniseren
Primaire entiteitenUsers, UserSettings / algemene voorkeuren
Secundaire entiteiten / eventsrolcontext, voorkeurendefinitie, verborgen voorkeur, UserPreferencesViewed, UserPreferenceChanged, UserPreferenceChangeRejected, UserPreferenceChangeFailed
Gerelateerde popupsPOP-GEN-PROF-PREFERENCES-SAVED, POP-GEN-PROF-PREFERENCES-VALIDATION-FAILED, POP-GEN-PROF-PREFERENCES-SAVE-FAILED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWShould have

2. Omschrijving

Deze usecase beschrijft hoe een ingelogde gebruiker eigen algemene voorkeuren beheert. Voorkeuren zijn gebruikersinstellingen die niet tot de profielgegevens behoren en niet onder toegankelijkheid vallen. Profielgegevens zoals naam, e-mailadres, wachtwoord, niveau en profielfoto blijven onderdeel van de profielpagina of identity-providerflow. Toegankelijkheidsinstellingen blijven onderdeel van de toegankelijkheidspagina en de bijbehorende cookie-synchronisatie.

Voorkeuren beïnvloeden uitsluitend presentatiegedrag, persoonlijke bediening of contextuele weergavekeuzes. Voorbeelden zijn een voorkeursweergave van namen, een persoonlijke sorteervolgorde binnen overzichten of een gebruikerskeuze om een bepaalde waarschuwing niet opnieuw te tonen wanneer die voorkeur functioneel door de applicatie beschikbaar wordt gemaakt.

Voorkeuren veranderen nooit autorisaties, rollen, relaties, niveauautorisaties of de functionele dataset die een gebruiker mag zien. Een voorkeur mag bijvoorbeeld de volgorde of naamrepresentatie in een docentoverzicht wijzigen, maar mag niet bepalen welke leerlingen de docent mag bekijken.

Deze usecase is procesgericht. Exacte veldlabels, layout, volgorde van voorkeuren, dropdownwaarden, schakelaarvormgeving en eventuele responsive details horen in schermdocumentatie. De technische opslagstructuur, instellingstypen, caching, migraties en beheer van voorkeurensleutels worden in TO, database-informatie en SRS als afgeleide specificaties vastgelegd.

3. Scope

Deze usecase beschrijft:

  • openen van de voorkeurenpagina vanuit de ingelogde gebruikerscontext;
  • tonen van eigen algemene voorkeuren;
  • tonen van rolgebonden voorkeuren wanneer deze voor de gebruiker en actieve rolcontext functioneel relevant zijn;
  • wijzigen van toegestane en door de gebruiker beheerbare voorkeuren;
  • server-side validatie van voorkeurensleutel, gegevenstype, waardebereik, rolcontext en eigenaar;
  • direct opslaan van gewijzigde voorkeuren in het gebruikersinstellingendomein;
  • direct of bij eerstvolgende relevante schermweergave toepassen van voorkeuren;
  • afbakening van verborgen of systeemgestuurde voorkeuren die niet vrij door de gebruiker te beheren zijn;
  • foutafhandeling bij ongeldige waarden of mislukte opslag;
  • requirements-afleiding voor voorkeurenbeheer.

Deze usecase beschrijft niet:

  • wijzigen van profielnaamvelden, niveau of profielfoto;
  • wijzigen van e-mailadres, wachtwoord, registratie, sessie of andere identity-providergegevens;
  • beheren van toegankelijkheidsinstellingen zoals contrast, dyslexielettertype of lettergrootte;
  • synchroniseren van toegankelijkheidsinstellingen met een technische cookie;
  • beheerderfunctionaliteit voor verborgen voorkeuren of supportmutaties op voorkeuren van andere gebruikers;
  • aanmaken van nieuwe voorkeurensleutels via de GUI;
  • wijzigen van autorisaties, rollen, relaties, niveauautorisaties of zichtbare gegevensset;
  • featuretogglebeheer of systeeminstellingenbeheer door beheerders;
  • account verwijderen, anonimiseren of deactiveren;
  • popupteksten, knopteksten of popup-seeddata.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is succesvol ingelogd.
PRE-002De sessie kan server-side aan precies één interne OefenHub-gebruiker worden gekoppeld.
PRE-003De voorkeurenpagina is bereikbaar via het profielmenu of een gelijkwaardige ingelogde route.
PRE-004De toegestane voorkeurensleutels, gegevenstypen, waardebereiken en beheerbaarheid zijn centraal bekend in code of configuratie.
PRE-005Voor de gebruiker bestaat een UserSettings-record of het systeem kan functionele defaults tonen zonder dat eerst handmatig een record hoeft te bestaan.
PRE-006Rolgebonden voorkeuren worden alleen getoond wanneer de gebruiker de betreffende rolcontext heeft en de voorkeur voor die context functioneel relevant is.
PRE-007Verborgen of systeemgestuurde voorkeuren zijn als zodanig herkenbaar en worden niet als vrij bewerkbaar veld getoond.
PRE-008Frontend-zichtbaarheid wordt niet als beveiligingslaag gebruikt; alle wijzigingen worden server-side gevalideerd.

5. Post-condities

IDResultaat
POST-001De gebruiker ziet alleen eigen voorkeuren en alleen beheerbare voorkeuren die voor de eigen context relevant zijn.
POST-002Gewijzigde voorkeuren zijn server-side gevalideerd op sleutel, type, waarde, eigenaar en context.
POST-003Toegestane wijzigingen zijn opgeslagen in het gebruikersinstellingendomein.
POST-004Gewijzigde voorkeuren worden direct toegepast wanneer dit technisch en functioneel kan, of bij de eerstvolgende relevante schermopbouw gelezen.
POST-005Verborgen of niet-gebruikersbeheerbare voorkeuren zijn niet vrij gewijzigd door de gebruiker.
POST-006Voorkeuren wijzigen geen rollen, autorisaties, relaties, niveauautorisaties, zichtbare gegevensset, oefenruns, berichten of meldingen.
POST-007Bij ongeldige invoer wordt niets opgeslagen voor het betreffende veld of de betreffende wijzigingsset.
POST-008Bij technische opslagfout blijft de laatst succesvol opgeslagen voorkeurenset leidend.
POST-009De wijziging is functioneel herleidbaar voor logging of audit waar dat voor gebruikersinstellingen vereist is.
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 via het profielmenu de pagina Voorkeuren opent, of wanneer de gebruiker op die pagina een beheerbare voorkeur wijzigt en opslaat.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1GebruikerProfielmenuKiest Voorkeuren.De applicatie opent de voorkeurenpagina.Ingelogde route.
2SysteemSessieserviceBepaalt de interne gebruiker uit de sessie.De server heeft een betrouwbare eigen-gebruikerscontext.Users.Id komt uit sessie, niet uit clientinput.
3SysteemVoorkeurenserviceBepaalt welke algemene voorkeuren voor de gebruiker beschikbaar zijn.Alleen beheerbare voorkeuren worden klaargezet voor weergave.Profiel en toegankelijkheid uitgesloten.
4SysteemRolcontextserviceBepaalt welke rolgebonden voorkeuren relevant zijn.Alleen voorkeuren voor aanwezige en functioneel relevante rolcontexten worden getoond.Geen wijziging van rol of autorisatie.
5SysteemGebruikersinstellingserviceLeest bestaande voorkeurwaarden of functionele defaults.De voorkeurenpagina wordt gevuld met actuele waarden.UserSettings / voorkeuren.
6SysteemVoorkeurenpaginaToont algemene en relevante rolgebonden voorkeuren.De gebruiker ziet beheerbare voorkeurvelden.Verborgen voorkeuren niet vrij bewerkbaar.
7GebruikerVoorkeurenpaginaWijzigt één of meer voorkeuren.De frontend toont de gewijzigde invoer lokaal.Nog geen servermutatie.
8GebruikerVoorkeurenpaginaSlaat de voorkeuren op.De frontend verstuurt de gewijzigde voorkeurenset of veldmutatie naar de backend.Command bevat geen vrij gekozen UserId.
9SysteemAutorisatieserviceControleert dat de wijziging voor de ingelogde gebruiker zelf geldt.Wijzigingen voor andere gebruikers worden geweigerd.Objectautorisatie server-side.
10SysteemValidatieserviceValideert voorkeurensleutel, type, waardebereik, beheerbaarheid en rolcontext.Alleen toegestane waarden worden geaccepteerd.Onbekende sleutels worden geweigerd.
11SysteemGebruikersinstellingserviceSlaat geldige wijzigingen op.De voorkeuren van de gebruiker worden bijgewerkt.UserSettings / voorkeurwaarden.
12SysteemLogging / eventsRegistreert de wijziging volgens centraal loggingbeleid.De mutatie is herleidbaar zonder gevoelige of overbodige data te loggen.UserPreferenceChanged.
13SysteemFrontend / voorkeurenpaginaBevestigt dat de voorkeuren zijn opgeslagen.De gebruiker krijgt een succesmelding of zichtbare bevestiging.POP-GEN-PROF-PREFERENCES-SAVED.
14SysteemRelevante schermenPast de voorkeur direct toe wanneer de voorkeur effect heeft op de actuele schermcontext.Volgende of actuele schermweergave volgt de voorkeur.Alleen presentatiegedrag.
15GebruikerOefenHubGebruikt de applicatie verder.Voorkeuren worden toegepast in de contexten waarvoor ze bedoeld zijn.Geen autorisatiewijziging.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0011De gebruiker is niet ingelogd of de sessie is verlopen.Het systeem gebruikt de generieke loginflow en voert geen voorkeurenmutatie uit.Generieke loginflow.Geen.
ALT-0022De sessie kan niet aan een interne gebruiker worden gekoppeld.De applicatie gebruikt generieke sessie-/accountfoutafhandeling.Generieke foutafhandeling.Geen.
ALT-0033Er bestaan nog geen opgeslagen voorkeurwaarden.Het systeem toont functionele defaults en maakt pas opslag aan wanneer de gebruiker een wijziging opslaat.Geen.Geen bij alleen bekijken.
ALT-0044De gebruiker heeft een rolcontext niet.Voorkeuren die uitsluitend voor die rolcontext gelden worden niet getoond en kunnen niet worden opgeslagen.Geen.Geen.
ALT-0054Een voorkeur is voor de gebruiker niet relevant in de actieve context.De voorkeur wordt niet getoond of blijft zonder effect in die context.Geen.Geen.
ALT-0066Een voorkeur is verborgen of systeemgestuurd.De voorkeur wordt niet als vrij bewerkbaar veld getoond.Geen.Geen.
ALT-0078De gebruiker sluit de pagina zonder op te slaan.Niet-opgeslagen wijzigingen worden niet bewaard.Eventuele generieke browser-/navigatiewaarschuwing buiten domein.Geen.
ALT-0089Het command probeert voorkeuren van een andere gebruiker te wijzigen.De backend weigert het command.Generieke toegang-geweigerd-afhandeling.Geen.
ALT-00910De voorkeurensleutel is onbekend.De backend weigert de wijziging.POP-GEN-PROF-PREFERENCES-VALIDATION-FAILED.Geen.
ALT-01010De voorkeur is bekend maar niet door de gebruiker beheerbaar.De backend weigert de wijziging.POP-GEN-PROF-PREFERENCES-VALIDATION-FAILED.Geen.
ALT-01110De waarde heeft een ongeldig type of valt buiten het toegestane bereik.De backend weigert de waarde en geeft gebruikersgerichte validatie terug.POP-GEN-PROF-PREFERENCES-VALIDATION-FAILED.Geen wijziging voor de ongeldige waarde.
ALT-01210De rolcontext bij de voorkeur is ongeldig of niet van toepassing op de gebruiker.De backend weigert de wijziging.POP-GEN-PROF-PREFERENCES-VALIDATION-FAILED.Geen.
ALT-01311Opslaan faalt door technische fout of concurrencyprobleem.De laatst succesvol opgeslagen voorkeurwaarden blijven leidend.POP-GEN-PROF-PREFERENCES-SAVE-FAILED.Geen of rollback van gedeeltelijke mutatie.
ALT-01411Meerdere voorkeuren worden tegelijk opgeslagen en één waarde is ongeldig.Het systeem verwerkt de wijzigingsset volgens één consistente validatiestrategie: alles weigeren of alleen geldige waarden verwerken, zoals centraal vastgesteld.POP-GEN-PROF-PREFERENCES-VALIDATION-FAILED.Afhankelijk van vastgestelde strategie.
ALT-01514Een gewijzigde voorkeur kan niet direct in het huidige scherm worden toegepast.De voorkeur is wel opgeslagen en wordt bij de eerstvolgende relevante schermopbouw toegepast.De gebruiker krijgt terugkoppeling dat de voorkeur is opgeslagen.UserSettings bijgewerkt.
ALT-01614Een voorkeur beïnvloedt alleen presentatie in een specifiek overzicht.Het effect is alleen zichtbaar in dat overzicht en niet applicatiebreed.Geen.Geen extra mutatie.
ALT-01712Logging of eventregistratie faalt zonder dat opslag faalt.De functionele voorkeurwijziging blijft geldig; niet-kritieke loggingfouten blokkeren de gebruiker niet.Geen technische details.UserSettings blijft bijgewerkt.

9. Business rules

IDRegel
BR-UC-GEN-PROF-007-001Een gebruiker mag uitsluitend eigen voorkeuren bekijken en wijzigen via de normale voorkeurenpagina.
BR-UC-GEN-PROF-007-002Voorkeuren zijn geen profielgegevens; naam, e-mailadres, wachtwoord, niveau en profielfoto worden niet via deze usecase gewijzigd.
BR-UC-GEN-PROF-007-003Voorkeuren zijn geen toegankelijkheidsinstellingen; contrast, dyslexielettertype en lettergrootte worden niet via deze usecase beheerd.
BR-UC-GEN-PROF-007-004Voorkeuren wijzigen uitsluitend presentatiegedrag, persoonlijke bediening of contextuele weergavekeuzes.
BR-UC-GEN-PROF-007-005Voorkeuren mogen nooit autorisaties, rollen, relaties, niveauautorisaties of de zichtbare gegevensset wijzigen.
BR-UC-GEN-PROF-007-006Rolgebonden voorkeuren mogen alleen worden getoond en opgeslagen wanneer de gebruiker de betreffende rolcontext heeft.
BR-UC-GEN-PROF-007-007Een rolgebonden voorkeur verandert uitsluitend de presentatie binnen die rolcontext en niet de onderliggende rechten.
BR-UC-GEN-PROF-007-008Verborgen of systeemgestuurde voorkeuren worden niet als vrij bewerkbare gebruikersvelden getoond.
BR-UC-GEN-PROF-007-009De toegestane voorkeurensleutels, typen, waardebereiken en beheerbaarheid zijn code- of configuratiegedreven.
BR-UC-GEN-PROF-007-010Onbekende voorkeurensleutels of clientmatig toegevoegde velden worden server-side geweigerd.
BR-UC-GEN-PROF-007-011Voorkeuren worden persistent per gebruiker opgeslagen. Rolgebonden voorkeuren worden aanvullend aan de relevante rolcontext gekoppeld wanneer dat functioneel nodig is.
BR-UC-GEN-PROF-007-012Bij technische opslagfout blijft de laatst succesvol opgeslagen voorkeurenset leidend.
BR-UC-GEN-PROF-007-013Voorkeuren mogen direct effect hebben, maar een preference-effect mag nooit als beveiligingscontrole worden gebruikt.
BR-UC-GEN-PROF-007-014Foutmeldingen tonen geen GUID's, stacktraces, databasefouten, interne sleutelwaarden of onnodige persoonsgegevens.

Centrale business rules die hierbij horen:

BusinessRule-IDToepassing
BR-GEN-SEC-001Afgeschermde acties vereisen server-side autorisatie en objectcontrole.
BR-GEN-SEC-002Gebruikersinvoer en clientwaarden worden server-side gevalideerd en veilig verwerkt.
BR-GEN-PROF-010Algemene voorkeuren worden functioneel gescheiden van profielgegevens en toegankelijkheidsinstellingen.
BR-GEN-PROF-011Voorkeuren veranderen geen autorisaties of zichtbare gegevensset, maar uitsluitend presentatiegedrag.

10. Datavalidatie

Veld / objectValidatie
SessieMoet server-side aan precies één interne OefenHub-gebruiker gekoppeld zijn.
Users.IdWordt server-side uit de sessie afgeleid en niet uit clientinput.
VoorkeurensleutelMoet bestaan in de centrale set toegestane voorkeuren.
VoorkeurcategorieMoet behoren tot algemene voorkeuren of een toegestane rolgebonden voorkeur; profiel en toegankelijkheid vallen buiten deze usecase.
BeheerbaarheidDe voorkeur moet door de gebruiker zelf beheerbaar zijn.
Verborgen voorkeurMag niet via de gewone voorkeurenpagina worden gewijzigd.
RolcontextMoet aanwezig en geldig zijn wanneer de voorkeur rolgebonden is.
WaardetypeMoet overeenkomen met het centraal vastgelegde type, zoals boolean, enum, tekst, integer of sorteerkeuze.
EnumwaardeMoet voorkomen in de centraal toegestane waardenlijst.
TekstwaardeMoet binnen lengte- en karaktergrenzen vallen wanneer tekstuele voorkeuren worden toegestaan.
SorteervoorkeurMag alleen toegestane sorteercriteria en sorteerrichtingen bevatten.
NaamweergavevoorkeurMag alleen toegestane naamrepresentaties bevatten en mag geen extra persoonsgegevens ontsluiten.
WijzigingssetMoet consistent gevalideerd worden; onbekende of ongeldige velden mogen niet stilzwijgend als geldige voorkeur worden opgeslagen.
LoggingGeen wachtwoorden, tokens, secrets, gevoelige headers, ruwe payloads, ExternalId of onnodige persoonsgegevens loggen.
FoutmeldingGebruikersgericht formuleren; geen GUID's, stacktraces, databasefouten of interne sleutelwaarden tonen.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
2ReadsessiecontextInterne gebruiker uit sessie bepalen.
3ReadvoorkeurendefinitiesBeschikbare algemene voorkeuren bepalen.
4ReadrolcontextRelevante rolgebonden voorkeuren bepalen.
5ReadUserSettings / voorkeurenBestaande voorkeurwaarden of defaults ophalen.
6UI-renderingvoorkeurenreadmodelVoorkeurenpagina tonen zonder persistente voorkeurmutatie.
8CommandUpdateOwnPreferencesGewijzigde voorkeurenset of veldmutatie aanbieden aan backend.
9Autorisatieobjectcontrole eigen gebruikerControleren dat alleen eigen voorkeuren worden gewijzigd.
10Validatievoorkeurensleutel, type, waarde en contextControleren dat de wijziging toegestaan is.
11UpdateUserSettings / voorkeurenGeldige voorkeurwaarden opslaan.
12Event / loggingUserPreferenceChangedRegistreren dat een voorkeur is gewijzigd.
ALT-009/010/011/012/014Event / loggingUserPreferenceChangeRejectedGeweigerde wijziging veilig registreren volgens centraal loggingbeleid.
ALT-013Event / loggingUserPreferenceChangeFailedTechnische opslagfout veilig registreren volgens centraal loggingbeleid.

12. Geen datamutaties

EntiteitReden
Users profielnaamveldenNaamgegevens worden via profielgegevens wijzigen beheerd.
E-mailadres / wachtwoord / Keycloak-gegevensIdentity-providergegevens vallen buiten deze usecase.
ProfielfotoProfielfoto kiezen is een aparte usecase.
Actief niveauNiveau wijzigen valt onder profielgegevens of verplicht niveau instellen.
ToegankelijkheidsinstellingenContrast, dyslexielettertype en lettergrootte vallen onder toegankelijkheidsusecases.
Technische toegankelijkheidscookieCookie-synchronisatie valt onder UC-GEN-PROF-006.
Rollen en autorisatiesVoorkeuren wijzigen geen rechten.
RelatiesVoorkeuren leggen geen relatie of ontkoppeling vast.
NiveauautorisatiesVoorkeuren bepalen geen onderwijscontexttoegang.
Oefenruns en voortgangVoorkeuren wijzigen geen oefendata.
Berichten, meldingen en systeemberichtenVoorkeuren maken geen berichten of meldingen aan.
PopupdefinitiesEr worden geen popuprecords aangemaakt of gewijzigd.

13. State diagram

Niet van toepassing. Algemene voorkeuren hebben geen zelfstandig statusmodel. De relevante toestand is afgeleid uit de opgeslagen waarde, de voorkeurendefinitie en de rolcontext waarin de voorkeur wordt toegepast.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Voorkeuren bekijken

16.2 Voorkeur wijzigen

17. Popupverwijzingen

PopupKeyMomentDoel
POP-GEN-PROF-PREFERENCES-SAVEDNa succesvol opslaan van voorkeuren.Bevestigen dat de voorkeuren zijn opgeslagen.
POP-GEN-PROF-PREFERENCES-VALIDATION-FAILEDBij onbekende sleutel, ongeldig type, ongeldig waardebereik, niet-beheerbare voorkeur of ongeldige rolcontext.Gebruiker melden dat de voorkeur niet opgeslagen kan worden.
POP-GEN-PROF-PREFERENCES-SAVE-FAILEDBij technische of transactionele opslagfout.Gebruiker melden dat opslaan niet is gelukt en dat de laatst opgeslagen waarden leidend blijven.

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

DoeldocumentAfleiding
Functioneel OntwerpDe pagina Voorkeuren is functioneel gescheiden van Profiel en Toegankelijkheid. De pagina toont alleen eigen beheerbare algemene voorkeuren en relevante rolgebonden voorkeuren.
Functioneel OntwerpVoorkeuren beïnvloeden presentatiegedrag, persoonlijke bediening of contextuele weergavekeuzes, maar wijzigen nooit autorisaties of zichtbare gegevensset.
Functioneel OntwerpVerborgen of systeemgestuurde voorkeuren, zoals waarschuwingen die vanuit een specifieke flow worden ingesteld, worden niet automatisch als vrij bewerkbaar veld op de voorkeurenpagina getoond.
Functioneel OntwerpRolgebonden voorkeuren worden alleen zichtbaar wanneer de gebruiker die rolcontext heeft en de voorkeur in die context betekenis heeft.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, Blazor frontendVoorkeurensleutels, gegevenstypen, waardebereiken, beheerbaarheid en rolcontextkoppeling moeten centraal en server-side valideerbaar zijn.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, Blazor frontendDe opslag hoort bij het gebruikersinstellingendomein, maar moet functioneel onderscheid kunnen maken tussen profielgegevens, toegankelijkheid en algemene voorkeuren.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, Blazor frontendVoorkeuren moeten zo worden toegepast dat zij niet als autorisatie- of beveiligingslaag gebruikt kunnen worden.
Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, Blazor frontendLogging mag voorkeurwijzigingen herleidbaar maken zonder gevoelige waarden, tokens, ExternalId of onnodige persoonsgegevens te loggen.
Software Requirements SpecificationDe gebruiker moet eigen voorkeuren kunnen bekijken en beheerbare voorkeuren kunnen wijzigen.
Software Requirements SpecificationHet systeem moet onbekende, ongeldige of niet-beheerbare voorkeurmutaties server-side weigeren.
Software Requirements SpecificationHet systeem moet borgen dat voorkeuren geen rollen, autorisaties, relaties, niveauautorisaties of zichtbare gegevensset wijzigen.
Software Requirements SpecificationHet systeem moet de laatst succesvol opgeslagen voorkeurenset blijven gebruiken wanneer een opslagpoging mislukt.

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-007-001SRS-RDM-001
SRS-RDM-008
SRS-ACC-003
AC-RDM-001
AC-RDM-008
AC-ACC-003
Een ingelogde gebruiker een voorkeurenpagina bieden voor eigen algemene voorkeuren
REQ-UC-GEN-PROF-007-002SRS-ACC-003
SRS-ACC-005
SRS-RDM-008
SRS-NFR-ACC-001
AC-ACC-003
AC-ACC-005
AC-RDM-008
AC-NFR-ACC-001
Profielgegevens en toegankelijkheidsinstellingen functioneel gescheiden houden van algemene voorkeuren
REQ-UC-GEN-PROF-007-003SRS-AUTH-001
SRS-ACC-003
SRS-RDM-008
AC-AUTH-001
AC-ACC-003
AC-RDM-008
Eigen voorkeurwaarden ophalen op basis van de server-side sessiecontext
REQ-UC-GEN-PROF-007-004SRS-ACC-003
SRS-RDM-008
AC-ACC-003
AC-RDM-008
Functionele defaults tonen wanneer nog geen voorkeurwaarde is opgeslagen
REQ-UC-GEN-PROF-007-005SRS-AUTH-001
SRS-ACC-003
SRS-RDM-008
AC-AUTH-001
AC-ACC-003
AC-RDM-008
Rolgebonden voorkeuren alleen tonen wanneer de gebruiker de betreffende rolcontext heeft
REQ-UC-GEN-PROF-007-006SRS-ACC-003
SRS-RDM-008
AC-ACC-003
AC-RDM-008
Verborgen of systeemgestuurde voorkeuren niet als vrij bewerkbare gebruikersvelden tonen
REQ-UC-GEN-PROF-007-007SRS-ACC-003
AC-ACC-003
Bij opslaan controleren dat de wijziging voor de ingelogde gebruiker zelf geldt
REQ-UC-GEN-PROF-007-008SRS-AUTH-001
SRS-ACC-003
SRS-RDM-008
AC-AUTH-001
AC-ACC-003
AC-RDM-008
Voorkeurensleutels server-side valideren tegen de centrale set toegestane voorkeuren
REQ-UC-GEN-PROF-007-009SRS-AUTH-001
SRS-ACC-003
SRS-RDM-008
AC-AUTH-001
AC-ACC-003
AC-RDM-008
Voorkeurwaarden server-side valideren op gegevenstype en waardebereik
REQ-UC-GEN-PROF-007-010SRS-AUTH-001
SRS-ACC-003
SRS-RDM-008
AC-AUTH-001
AC-ACC-003
AC-RDM-008
De rolcontext van rolgebonden voorkeuren server-side valideren
REQ-UC-GEN-PROF-007-011SRS-AUTH-001
SRS-ACC-003
SRS-RDM-008
AC-AUTH-001
AC-ACC-003
AC-RDM-008
Onbekende voorkeurensleutels weigeren
REQ-UC-GEN-PROF-007-012SRS-AUTH-001
SRS-ACC-003
SRS-RDM-008
SRS-ADM-001
AC-AUTH-001
AC-ACC-003
AC-RDM-008
AC-ADM-001
Niet-gebruikersbeheerbare voorkeuren weigeren wanneer deze via clientinput worden aangeboden
REQ-UC-GEN-PROF-007-013SRS-ACC-003
SRS-RDM-008
AC-ACC-003
AC-RDM-008
Geldige voorkeurwijzigingen persistent per gebruiker opslaan
REQ-UC-GEN-PROF-007-014SRS-ACC-003
SRS-RDM-008
AC-ACC-003
AC-RDM-008
Opgeslagen voorkeuren toepassen in de contexten waarvoor zij functioneel bedoeld zijn
REQ-UC-GEN-PROF-007-015SRS-AUTH-001
SRS-ACC-003
SRS-RDM-008
SRS-REL-001
SRS-CAT-001
AC-AUTH-001
AC-ACC-003
AC-RDM-008
AC-REL-001
AC-CAT-001
Borgen dat voorkeuren geen autorisaties, rollen, relaties, niveauautorisaties of zichtbare gegevensset wijzigen
REQ-UC-GEN-PROF-007-016SRS-ACC-003
SRS-RDM-008
AC-ACC-003
AC-RDM-008
Bij opslagfouten de laatst succesvol opgeslagen voorkeurenset blijven gebruiken
REQ-UC-GEN-PROF-007-017SRS-ACC-003
AC-ACC-003
De gebruiker een begrijpelijke terugkoppeling geven bij succesvolle opslag
REQ-UC-GEN-PROF-007-018SRS-ACC-003
AC-ACC-003
De gebruiker een begrijpelijke terugkoppeling geven bij validatiefouten
REQ-UC-GEN-PROF-007-019SRS-ACC-003
AC-ACC-003
De gebruiker een begrijpelijke terugkoppeling geven bij technische opslagfouten
REQ-UC-GEN-PROF-007-020SRS-ACC-003
SRS-TIC-002
SRS-NFR-SEC-001
SRS-NFR-PRV-001
AC-ACC-003
AC-TIC-002
AC-NFR-SEC-001
AC-NFR-PRV-001
In foutmeldingen geen GUID's, stacktraces, databasefouten, tokens, ExternalId of onnodige persoonsgegevens tonen
REQ-UC-GEN-PROF-007-021SRS-ACC-003
SRS-RDM-008
SRS-NFR-SEC-001
AC-ACC-003
AC-RDM-008
AC-NFR-SEC-001
Voorkeurwijzigingen veilig kunnen loggen of registreren zonder gevoelige waarden onnodig vast te leggen
REQ-UC-GEN-PROF-007-022SRS-ACC-002
SRS-ACC-003
SRS-RDM-008
AC-ACC-002
AC-ACC-003
AC-RDM-008
Bij verlopen sessie de generieke loginflow gebruiken en geen voorkeurmutatie uitvoeren
REQ-UC-GEN-PROF-007-023SRS-AUTH-001
SRS-ACC-003
SRS-RDM-008
AC-AUTH-001
AC-ACC-003
AC-RDM-008
Bij ontbrekende autorisatie de generieke toegang-geweigerd-afhandeling gebruiken en geen voorkeurmutatie uitvoeren