UC-GEN-PROF-004 — Profielfoto kiezen
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-GEN-PROF-004 |
| Naam | Profielfoto kiezen |
| Domein | Profiel, voorkeuren en toegankelijkheid |
| Primaire actor | Ingelogde gebruiker |
| Secundaire actor(en) | Systeem, profielservice, profielafbeeldingservice, validatieservice |
| Rolcontext | Ingelogde gebruiker in eigen profielcontext; geldt voor alle rollen die toegang hebben tot de profielpagina |
| Betrokken schermen | SCH-GEN-11-01 — Profiel |
| Gerelateerde usecases | UC-GEN-PROF-001 — Profiel bekijken; UC-GEN-PROF-002 — Profielgegevens wijzigen; UC-GEN-PROF-003 — Verplicht niveau instellen; UC-GEN-PROF-005 — Toegankelijkheidsinstellingen beheren |
| Primaire entiteiten | Users, ProfileAvatars |
| Secundaire entiteiten / events | profielreadmodel, sessiecontext, ProfileAvatarChanged, ProfileAvatarChangeRejected, ProfileAvatarChangeFailed |
| Gerelateerde popups | POP-GEN-PROF-AVATAR-SAVED, POP-GEN-PROF-AVATAR-NOT-ALLOWED, POP-GEN-PROF-AVATAR-SAVE-FAILED |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must have |
2. Omschrijving
Deze usecase beschrijft hoe een ingelogde gebruiker de eigen profielfoto kiest of wijzigt. OefenHub ondersteunt hiervoor geen vrije upload. De gebruiker kiest uitsluitend uit vooraf gedefinieerde profielafbeeldingen die door het systeem beschikbaar worden gesteld. In het profiel wordt alleen de verwijzing naar de gekozen afbeelding opgeslagen.
De flow voorkomt dat gebruikers willekeurige of ongepaste afbeeldingen uploaden. De frontend toont alleen toegestane profielafbeeldingen, maar de server valideert bij opslaan opnieuw of de gekozen afbeelding bestaat, actief is en voor de gebruiker beschikbaar mag zijn.
Deze usecase is procesgericht. UI-details zoals exacte galerijweergave, selectie-effecten, fallbackafbeelding, popupteksten en knopteksten worden vastgelegd in schermdocumentatie, popupregister en popup-themes. De usecase beschrijft de autorisatie, validatie, datamutatie en requirements-afleiding.
3. Scope
Deze usecase beschrijft:
- openen van de profielfoto- of profielafbeeldingkeuze vanuit het eigen profiel;
- tonen van vooraf gedefinieerde beschikbare profielafbeeldingen;
- selecteren van één profielafbeelding;
- server-side controle dat de actor uitsluitend het eigen profiel wijzigt;
- server-side controle dat de gekozen afbeelding bestaat, actief en selecteerbaar is;
- opslaan van de profielafbeeldingreferentie in het gebruikersprofiel;
- vernieuwen van de profielkaart, header/profielmenu en overige profielafbeeldingweergaven;
- veilige foutafhandeling wanneer de gekozen afbeelding niet meer beschikbaar is of opslag faalt;
- datamutaties en requirements-afleiding voor profielfoto kiezen.
Deze usecase beschrijft niet:
- vrije upload van afbeeldingen;
- beheer van de centrale set profielafbeeldingen;
- moderatie of beoordeling van door gebruikers geüploade afbeeldingen;
- aanpassen van naamvelden, e-mailadres, wachtwoord of niveau;
- verplicht niveau instellen;
- toegankelijkheidsinstellingen;
- algemene voorkeuren;
- account verwijderen, anonimiseren of deactiveren;
- volledige schermopmaak van de profielpagina;
- popupteksten, knopteksten of popup-seeddata.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is ingelogd. |
| PRE-002 | De sessie is geldig en kan server-side aan precies één interne OefenHub-gebruiker worden gekoppeld. |
| PRE-003 | Het interne gebruikersprofiel bestaat. |
| PRE-004 | De gebruiker heeft toegang tot de eigen profielpagina. |
| PRE-005 | De profielafbeeldingservice kan de beschikbare profielafbeeldingen uitlezen. |
| PRE-006 | Er bestaat minimaal één actieve profielafbeelding of een systeemfallback die als profielafbeelding getoond kan worden. |
| PRE-007 | De profielopslag ondersteunt het vastleggen van een profielafbeeldingreferentie. |
| PRE-008 | Het popupregister bevat de benodigde popupkeys voor de profielfotoflow. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | Bij succesvolle keuze bevat het eigen profiel een verwijzing naar de gekozen profielafbeelding. |
| POST-002 | De opgeslagen profielafbeeldingreferentie verwijst naar een bestaande en toegestane profielafbeelding. |
| POST-003 | De profielkaart en zichtbare profielafbeeldingweergaven tonen na verwerking de gekozen afbeelding of een geldige fallback. |
| POST-004 | Ongeldige, niet-actieve of niet-bestaande profielafbeeldingreferenties worden niet opgeslagen. |
| POST-005 | Een gebruiker kan via deze usecase geen profielafbeelding van een andere gebruiker wijzigen. |
| POST-006 | Er wordt geen afbeeldingsbestand door de gebruiker geüpload of opgeslagen. |
| POST-007 | Er wordt geen nieuw profielafbeeldingrecord aangemaakt door de gebruiker. |
| POST-008 | Bij technische fout blijft de bestaande profielafbeeldingreferentie behouden. |
| POST-009 | De usecase wijzigt geen naamgegevens, e-mailadres, wachtwoord, niveau, rollen, relaties of voorkeuren. |
| POST-010 | Bij verlopen sessie wordt de generieke loginflow gebruikt. |
| POST-011 | Bij ontbrekende autorisatie wordt de generieke toegang-geweigerd-afhandeling gebruikt. |
6. Trigger
De usecase start wanneer een ingelogde gebruiker op de profielpagina de actie kiest om de eigen profielfoto of profielafbeelding te wijzigen.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Gebruiker | Profielpagina | Opent het eigen profiel. | Het systeem toont de actuele profielgegevens en huidige profielafbeelding. | Zie UC-GEN-PROF-001. |
| 2 | Gebruiker | Profielkaart / profielfotoactie | Kiest de actie om de profielfoto te wijzigen. | Het systeem opent de profielafbeeldingkiezer of toont de beschikbare afbeeldingen binnen de profielpagina. | Geen vrije upload tonen. |
| 3 | Systeem | Profielafbeeldingservice | Haalt de beschikbare profielafbeeldingen op. | Alleen actieve en selecteerbare profielafbeeldingen worden getoond. | ProfileAvatars als bron voor toegestane keuzes. |
| 4 | Systeem | Profielafbeeldingkiezer | Toont de huidige keuze en beschikbare alternatieven. | De gebruiker kan één afbeelding selecteren. | Dynamische voorbeelddata in mockups is niet normatief. |
| 5 | Gebruiker | Profielafbeeldingkiezer | Selecteert een profielafbeelding. | Het systeem markeert de gekozen afbeelding als kandidaatkeuze. | Nog geen definitieve opslag. |
| 6 | Gebruiker | Profielafbeeldingkiezer | Bevestigt de keuze via Opslaan of gelijkwaardige actie. | Het systeem start server-side validatie. | Client-side selectie is ondersteunend. |
| 7 | Systeem | Sessieservice | Bepaalt de te wijzigen gebruiker uit de sessie. | De server gebruikt de sessiegebruiker als doelgebruiker. | Client-side UserId is niet leidend. |
| 8 | Systeem | Autorisatieservice | Controleert of de actor het eigen profiel wijzigt. | De wijziging mag alleen doorgaan voor het eigen profiel. | Objectautorisatie server-side. |
| 9 | Systeem | Validatieservice | Controleert of de gekozen profielafbeelding bestaat. | Onbekende waarden worden geweigerd. | Geen vrije identifier accepteren. |
| 10 | Systeem | Validatieservice | Controleert of de gekozen profielafbeelding actief en selecteerbaar is. | Niet-beschikbare afbeeldingen worden geweigerd. | De frontendlijst is niet leidend. |
| 11 | Systeem | Profielservice | Slaat de profielafbeeldingreferentie op in het eigen profiel. | Het profiel verwijst voortaan naar de gekozen afbeelding. | Geen upload of binary opslag vanuit gebruiker. |
| 12 | Systeem | Profielservice / auditvelden | Legt wijzigingsmetadata vast wanneer het datamodel dit ondersteunt. | UpdatedByUserId en UpdatedAtUtc worden server-side bepaald. | Geen persoonsgegevens onnodig loggen. |
| 13 | Systeem | UI / readmodel | Vernieuwt profielkaart, header/profielmenu en relevante profielafbeeldingweergaven. | De gebruiker ziet de gekozen profielafbeelding terug. | Eventuele cache wordt ververst of ongeldig gemaakt. |
| 14 | Systeem | Popup / melding | Bevestigt succesvolle opslag. | POP-GEN-PROF-AVATAR-SAVED wordt getoond wanneer de UI een popup gebruikt. | Popupinhoud staat in popupregister. |
| 15 | Gebruiker | Profielpagina | Sluit de profielafbeeldingkiezer of blijft op de profielpagina. | De actuele profielweergave blijft consistent met de opgeslagen keuze. | Geen aanvullende mutatie. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 1-2 | De sessie is verlopen. | Het systeem start de generieke loginflow. | Geen profielspecifieke popup. | Geen. |
| ALT-002 | 1-2 | De gebruiker probeert via manipulatie een ander profiel te wijzigen. | Het systeem weigert de actie server-side. | Generieke toegang-geweigerd-afhandeling. | Geen. |
| ALT-003 | 3 | Er zijn tijdelijk geen actieve profielafbeeldingen beschikbaar. | Het systeem toont de bestaande profielafbeelding of fallback en blokkeert wijziging. | Gebruikersgerichte melding of leegstaat. | Geen. |
| ALT-004 | 3-4 | De huidige profielafbeelding is niet meer selecteerbaar. | Het systeem toont de huidige afbeelding als bestaande profielweergave, maar biedt deze niet als nieuwe keuze aan wanneer de afbeelding niet meer selecteerbaar is. | Geen extra popup vereist. | Geen. |
| ALT-005 | 5 | De gebruiker selecteert dezelfde afbeelding als de huidige keuze. | Het systeem verwerkt dezelfde keuze als no-op en voert geen inhoudelijke profielwijziging uit. | Geen extra popup vereist. | Geen inhoudelijke profielwijziging. |
| ALT-006 | 5-6 | De gebruiker annuleert de keuze. | Het systeem sluit de profielafbeeldingkiezer en behoudt de bestaande profielafbeelding. | Geen. | Geen. |
| ALT-007 | 6 | Geen profielafbeelding geselecteerd. | Het systeem weigert opslag en vraagt een geldige keuze. | POP-GEN-PROF-AVATAR-NOT-ALLOWED of inline validatie. | Geen. |
| ALT-008 | 9 | De gekozen profielafbeelding bestaat niet. | Het systeem weigert opslag. | POP-GEN-PROF-AVATAR-NOT-ALLOWED. | Geen. |
| ALT-009 | 10 | De gekozen profielafbeelding is gedeactiveerd of niet selecteerbaar. | Het systeem weigert opslag. | POP-GEN-PROF-AVATAR-NOT-ALLOWED. | Geen. |
| ALT-010 | 11 | Opslaan faalt door technische of transactionele fout. | Het systeem behoudt de bestaande profielafbeeldingreferentie en toont een veilige foutmelding. | POP-GEN-PROF-AVATAR-SAVE-FAILED. | Geen definitieve wijziging. |
| ALT-011 | 13 | UI-cache of headerweergave kan niet direct vernieuwen. | Het systeem toont bij eerstvolgende profielread de opgeslagen keuze; technische cachefout wordt veilig gelogd. | Geen technische details aan gebruiker. | Profielwijziging blijft leidend wanneer stap 11 geslaagd is. |
| ALT-012 | 11-14 | Opslag is geslaagd maar bevestigingspopup kan niet worden geladen. | Het systeem toont een inline bevestiging of blijft bij actuele profielweergave. | Alternatieve gebruikersgerichte bevestiging. | Profielafbeelding is gewijzigd. |
| ALT-013 | 2-10 | De gebruiker probeert een bestand te uploaden via gemanipuleerde clientrequest. | Het systeem negeert of weigert uploaddata en accepteert alleen een geldige profielafbeeldingreferentie. | POP-GEN-PROF-AVATAR-NOT-ALLOWED of generieke validatiemelding. | Geen upload, geen profielwijziging. |
| ALT-014 | 11 | Logging van niet-kritieke eventinformatie faalt na succesvolle profielwijziging. | Het systeem volgt het centrale loggingbeleid; de profielwijziging blijft leidend. | Geen technische details aan gebruiker. | Profielafbeelding blijft gewijzigd. |
9. Business rules
| ID | Regel |
|---|---|
| BR-UC-GEN-PROF-004-001 | Een gebruiker mag via de normale profielroute uitsluitend de eigen profielfoto wijzigen. |
| BR-UC-GEN-PROF-004-002 | De server bepaalt de te wijzigen gebruiker altijd op basis van de sessie. |
| BR-UC-GEN-PROF-004-003 | OefenHub ondersteunt voor profielfoto’s geen vrije upload door gebruikers. |
| BR-UC-GEN-PROF-004-004 | Een profielfoto wordt opgeslagen als referentie naar een vooraf gedefinieerde profielafbeelding. |
| BR-UC-GEN-PROF-004-005 | Alleen actieve en selecteerbare profielafbeeldingen mogen als nieuwe keuze worden opgeslagen. |
| BR-UC-GEN-PROF-004-006 | De frontend mag alleen toegestane profielafbeeldingen tonen, maar server-side validatie blijft leidend. |
| BR-UC-GEN-PROF-004-007 | Een gemanipuleerde profielafbeeldingreferentie wordt geweigerd wanneer deze niet bestaat, niet actief is of niet selecteerbaar is. |
| BR-UC-GEN-PROF-004-008 | Een gebruikerskeuze mag geen binary afbeelding, externe URL, vrije bestandsnaam of uploadpayload bevatten. |
| BR-UC-GEN-PROF-004-009 | Wanneer de gekozen afbeelding niet meer beschikbaar is op het moment van opslaan, blijft de bestaande profielafbeelding behouden. |
| BR-UC-GEN-PROF-004-010 | Bij ontbrekende of ongeldige profielafbeelding gebruikt de UI een geldige fallback in plaats van een kapotte afbeelding te tonen. |
| BR-UC-GEN-PROF-004-011 | Het kiezen van een profielfoto wijzigt geen naamgegevens, niveau, rollen, relaties, voorkeuren of toegankelijkheidsinstellingen. |
| BR-UC-GEN-PROF-004-012 | Popuptekst, knoptekst en themakeuze worden niet in de usecase gedupliceerd maar via popupregister en popup-themes beheerd. |
| BR-UC-GEN-PROF-004-013 | Foutmeldingen mogen geen technische identifiers, stacktraces, databasefouten, tokens, ExternalId of interne opslagpaden tonen. |
| BR-UC-GEN-PROF-004-014 | Profielafbeeldingrecords worden door deze usecase alleen gelezen; beheer van de centrale set profielafbeeldingen hoort niet bij de profielgebruikersflow. |
| BR-UC-GEN-PROF-004-015 | Wanneer profielafbeeldingen worden gecachet, moet de zichtbare profielweergave na succesvolle wijziging consistent worden vernieuwd of bij de eerstvolgende read de nieuwe keuze tonen. |
Centrale business rules die hierbij horen:
| BusinessRule-ID | Toepassing |
|---|---|
BR-GEN-SEC-001 | Afgeschermde acties vereisen server-side autorisatie en objectcontrole. |
BR-GEN-PROF-001 | Een gebruiker mag via de normale profielroute uitsluitend het eigen profiel beheren. |
BR-GEN-PROF-002 | OefenHub wijzigt alleen applicatieprofielgegevens en niet de identity-providercredentials. |
BR-GEN-PROF-006 | Profielfoto’s zijn vooraf gedefinieerde profielafbeeldingen; vrije upload is niet toegestaan. |
BR-GEN-POP-001 | Usecases verwijzen alleen naar PopupKey; popupinhoud staat centraal in het popupregister. |
BR-GEN-SEC-002 | Gebruikersinvoer en clientwaarden worden server-side gevalideerd en veilig verwerkt. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| Sessie | Moet geldig zijn en aan precies één interne OefenHub-gebruiker gekoppeld kunnen worden. |
Users.Id | Wordt server-side uit de sessie afgeleid en niet uit clientinput. |
| Doelprofiel | Moet het eigen profiel van de ingelogde gebruiker zijn. |
| Profielrecord | Moet bestaan voordat de profielafbeelding kan worden gewijzigd. |
| Profielafbeeldingkeuzelijst | Wordt server-side opgebouwd uit actieve en selecteerbare profielafbeeldingen. |
| Gekozen profielafbeeldingreferentie | Verplicht bij definitief opslaan. |
| Gekozen profielafbeeldingreferentie | Moet verwijzen naar een bestaand ProfileAvatars-record of definitief gekozen profielafbeeldingrecord. |
| Gekozen profielafbeeldingreferentie | Moet actief en selecteerbaar zijn op het moment van opslaan. |
| Uploadpayload | Niet toegestaan en wordt niet verwerkt. |
| Externe afbeeldings-URL | Niet toegestaan als profielfoto-invoer. |
| Afbeeldingsbestandnaam | Niet toegestaan als vrije gebruikersinvoer. |
| Afbeeldingsformaat | Centrale profielafbeeldingen volgen de vastgelegde limiet van maximaal 64x64 waar dat als bronvoorwaarde geldt. |
| Auditvelden | UpdatedByUserId wordt afgeleid uit de sessie; UpdatedAtUtc wordt server-side bepaald wanneer deze velden aanwezig zijn. |
| PopupKey | Moet bestaan in het popupregister voordat de popup gebruikt kan worden. |
| Foutmelding | Gebruikersgericht formuleren; geen GUID’s, stacktraces, databasefouten, tokens, ExternalId of interne opslagpaden tonen. |
| Logging | Geen wachtwoorden, tokens, secrets, gevoelige headers of onnodige persoonsgegevens loggen. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1 | Read | Users / profielreadmodel | Huidige profielgegevens en profielafbeelding ophalen. |
| 3 | Read | ProfileAvatars | Beschikbare actieve profielafbeeldingen ophalen. |
| 5 | Clientstate | kandidaatkeuze | Geselecteerde profielafbeelding tijdelijk markeren. |
| 7 | Read | sessiecontext | Te wijzigen gebruiker uit sessie bepalen. |
| 8 | Autorisatie | doelprofiel | Controleren dat actor eigen profiel wijzigt. |
| 9 | Validatie | ProfileAvatars | Controleren dat de gekozen referentie bestaat. |
| 10 | Validatie | ProfileAvatars | Controleren dat de gekozen referentie actief en selecteerbaar is. |
| 11 | Update | Users of profielopslag | Profielafbeeldingreferentie van de eigen gebruiker bijwerken. |
| 12 | Update / audit | UpdatedByUserId, UpdatedAtUtc | Laatste wijziging vastleggen wanneer deze velden aanwezig zijn. |
| 12 | Event / logging | ProfileAvatarChanged | Geslaagde profielafbeeldingwijziging logisch registreren volgens centraal loggingbeleid. |
| 13 | UI/readmodel | profielweergave / headercomponent | Actuele profielafbeelding opnieuw tonen of cache ongeldig maken. |
| ALT-007 t/m ALT-009, ALT-013 | Event / logging | ProfileAvatarChangeRejected | Ongeldige of niet-toegestane profielafbeeldingkeuze veilig registreren volgens centraal loggingbeleid. |
| ALT-010 | Event / logging | ProfileAvatarChangeFailed | Technische opslagfout veilig registreren. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
ProfileAvatars | Profielafbeeldingen worden alleen gelezen; gebruikers maken of wijzigen geen centrale profielafbeeldingrecords. |
| Afbeeldingsbestanden / blobopslag | Er wordt geen vrije upload verwerkt en geen nieuw bestand opgeslagen. |
| Identity-provideraccount | E-mailadres, wachtwoord, sessies en identity-providergegevens worden niet gewijzigd. |
| Rollen / role assignments | Profielfoto kiezen wijzigt geen rollen. |
| Relaties | Profielfoto kiezen maakt, wijzigt of verwijdert geen relaties. |
| Niveaucontext | Actief niveau instellen hoort bij UC-GEN-PROF-002 of UC-GEN-PROF-003. |
| Gebruikersnaamvelden | Naamgegevens wijzigen hoort bij UC-GEN-PROF-002. |
| Toegankelijkheidsinstellingen | Contrast, dyslexielettertype en lettergrootte horen bij UC-GEN-PROF-005. |
| Algemene voorkeuren | Niet-profielgebonden voorkeuren horen bij UC-GEN-PROF-007. |
| ExerciseRuns | Er worden geen oefenruns gestart, hervat, afgerond of gewijzigd. |
| Berichten / systeemberichten | Profielfoto kiezen verstuurt geen berichten. |
13. State diagram
Niet van toepassing. Er wordt geen zelfstandig statusobject met eigen statustransities geïntroduceerd. De usecase wijzigt alleen de profielafbeeldingreferentie van de ingelogde gebruiker.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
16.1 Profielfoto kiezen en opslaan
16.2 Ongeldige of niet-toegestane profielafbeelding
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
POP-GEN-PROF-AVATAR-SAVED | Na succesvolle opslag van de profielafbeeldingreferentie wanneer de UI een popup gebruikt. | Bevestigen dat de profielfoto is bijgewerkt. |
POP-GEN-PROF-AVATAR-NOT-ALLOWED | Wanneer de gekozen profielafbeelding ontbreekt, niet actief, niet selecteerbaar of via gemanipuleerde invoer wordt aangeboden. | Uitleggen dat de gekozen profielafbeelding niet gebruikt kan worden. |
POP-GEN-PROF-AVATAR-SAVE-FAILED | Bij technische of transactionele fout tijdens opslaan. | Veilig melden dat opslaan niet gelukt is zonder technische details te tonen. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijf dat profielfoto kiezen alleen werkt met vooraf gedefinieerde profielafbeeldingen en geen vrije upload ondersteunt. |
| Functioneel Ontwerp | Beschrijf de profielpagina-actie voor profielfoto wijzigen, inclusief tonen van huidige afbeelding, beschikbare keuzes, annuleren en opslaan. |
| Functioneel Ontwerp | Beschrijf fallbackgedrag wanneer de huidige of gekozen profielafbeelding niet beschikbaar is. |
| Functioneel Ontwerp | Beschrijf dat de wijziging uitsluitend het eigen profiel betreft. |
| Technisch Ontwerp: identiteit, authenticatie en rolcontext, Blazor frontend | Beschrijft welke tabel of structuur de profielafbeeldingen bevat, inclusief actieve/selecteerbare status en maximale afbeeldingsspecificaties. |
| Technisch Ontwerp: identiteit, authenticatie en rolcontext, Blazor frontend | Beschrijft waar de profielafbeeldingreferentie op het gebruikersprofiel wordt opgeslagen. |
| Technisch Ontwerp: identiteit, authenticatie en rolcontext, Blazor frontend | Beschrijft server-side validatie tegen de profielafbeeldingentabel en het weigeren van uploads, externe URL’s en vrije bestandsnamen. |
| Technisch Ontwerp: identiteit, authenticatie en rolcontext, Blazor frontend | Beschrijft cacheverversing of readmodelvernieuwing voor header, profielmenu en profielpagina na succesvolle wijziging. |
| Software Requirements Specification | Bevat requirements voor eigen-profielautorisatie, geen upload, alleen toegestane profielafbeeldingen, veilige foutafhandeling en consistente weergave na opslag. |
| Database-informatie | Beschrijft Users.ProfileAvatarId en ProfileAvatars als datamodelbasis voor vooraf gedefinieerde profielavatars. |
| Ontwerpbronnen | Voeg business rules, commands, events, domeinobjecten, popupverwijzingen en usecase-matrices toe voor deze flow. |
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-afleiding | Dekt | Usecasecontext |
|---|---|---|
REQ-UC-GEN-PROF-004-001 | SRS-RDM-001 SRS-ACC-003 AC-RDM-001 AC-ACC-003 | Een ingelogde gebruiker in staat stellen de eigen profielfoto te kiezen via de profielpagina |
REQ-UC-GEN-PROF-004-002 | SRS-ACC-003 AC-ACC-003 | Voorkomen dat een gebruiker via de normale profielroute de profielfoto van een andere gebruiker wijzigt |
REQ-UC-GEN-PROF-004-003 | SRS-AUTH-001 SRS-RDM-001 SRS-ACC-003 AC-AUTH-001 AC-RDM-001 AC-ACC-003 | De te wijzigen gebruiker server-side afleiden uit de sessie |
REQ-UC-GEN-PROF-004-004 | SRS-ACC-003 AC-ACC-003 | Geen vrije upload van profielfoto’s door gebruikers toestaan |
REQ-UC-GEN-PROF-004-005 | SRS-ACC-003 AC-ACC-003 | Profielfoto’s opslaan als referentie naar vooraf gedefinieerde profielafbeeldingen |
REQ-UC-GEN-PROF-004-006 | SRS-ACC-003 AC-ACC-003 | Alleen actieve en selecteerbare profielafbeeldingen als nieuwe keuze toestaan |
REQ-UC-GEN-PROF-004-007 | SRS-AUTH-001 SRS-ACC-003 AC-AUTH-001 AC-ACC-003 | Een gekozen profielafbeeldingreferentie server-side valideren voordat deze wordt opgeslagen |
REQ-UC-GEN-PROF-004-008 | SRS-AUTH-001 SRS-ACC-003 AC-AUTH-001 AC-ACC-003 | Gemanipuleerde, onbekende, gedeactiveerde of niet-selecteerbare profielafbeeldingreferenties weigeren |
REQ-UC-GEN-PROF-004-009 | SRS-ACC-003 AC-ACC-003 | Bij succesvolle wijziging de profielafbeeldingreferentie in het eigen profiel bijwerken |
REQ-UC-GEN-PROF-004-010 | SRS-RDM-001 SRS-ACC-003 AC-RDM-001 AC-ACC-003 | Na succesvolle wijziging de zichtbare profielafbeelding op profielpagina, profielkaart en relevante header-/menuweergaven consistent tonen |
REQ-UC-GEN-PROF-004-011 | SRS-ACC-003 AC-ACC-003 | Bij technische opslagfouten de bestaande profielafbeelding behouden |
REQ-UC-GEN-PROF-004-012 | SRS-ACC-003 AC-ACC-003 | Bij ontbrekende of ongeldige profielafbeelding een geldige fallback kunnen tonen |
REQ-UC-GEN-PROF-004-013 | SRS-ACC-003 SRS-CNT-004 AC-ACC-003 AC-CNT-004 | Verhinderen dat uploadpayloads, externe URL’s of vrije bestandsnamen als profielfoto worden verwerkt |
REQ-UC-GEN-PROF-004-014 | SRS-ACC-003 SRS-TIC-002 SRS-NFR-SEC-001 AC-ACC-003 AC-TIC-002 AC-NFR-SEC-001 | Veilige gebruikersmeldingen tonen zonder technische details wanneer een profielafbeelding niet kan worden gekozen of opgeslagen |
REQ-UC-GEN-PROF-004-015 | SRS-ACC-003 AC-ACC-003 | De centrale profielafbeeldingrecords in deze gebruikersflow alleen lezen en niet door de gebruiker laten aanmaken of wijzigen |
REQ-UC-GEN-PROF-004-016 | SRS-ACC-003 SRS-NFR-AUD-001 AC-ACC-003 AC-NFR-AUD-001 | Wijzigingsmetadata vastleggen wanneer het profielopslagmodel daarvoor velden bevat |
REQ-UC-GEN-PROF-004-017 | SRS-ACC-003 SRS-ACC-005 SRS-RDM-008 SRS-REL-001 SRS-CAT-006 SRS-NFR-ACC-001 AC-ACC-003 AC-ACC-005 AC-RDM-008 AC-REL-001 AC-CAT-006 AC-NFR-ACC-001 | Geen naamgegevens, niveaucontext, rollen, relaties, voorkeuren, toegankelijkheidsinstellingen of identity-providergegevens wijzigen als onderdeel van profielfoto kiezen |
REQ-UC-GEN-PROF-004-018 | SRS-ACC-002 SRS-ACC-003 AC-ACC-002 AC-ACC-003 | Verlopen sessies via de generieke loginflow afhandelen |
REQ-UC-GEN-PROF-004-019 | SRS-AUTH-001 SRS-ACC-003 AC-AUTH-001 AC-ACC-003 | Ontbrekende autorisatie via de generieke toegang-geweigerd-afhandeling verwerken |
REQ-UC-GEN-PROF-004-020 | SRS-ACC-003 SRS-POP-001 AC-ACC-003 AC-POP-001 | Popupinhoud en knopteksten voor deze flow centraal via het popupregister kunnen beheren wanneer popups worden gebruikt |