Skip to main content

UC-BEH-POP-004 — Popupwijziging valideren en opslaan

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-POP-004
NaamPopupwijziging valideren en opslaan
DomeinBeheerder / Popupbeheer
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, autorisatiecomponent, database, historyservice
RolcontextActieve beheerdercontext; combinatierollen geven geen extra rechten binnen popupbeheer
Betrokken schermenSite Instellingen > Popups beheren
Gerelateerde usecasesUC-BEH-POP-002, UC-BEH-POP-003, UC-BEH-POP-005, UC-BEH-POP-006
Primaire entiteitenPopupDetails, PopupDetailsHistory, PopupDetailsHistoryItems
Secundaire entiteiten / eventsPopupType, PopupVariant, PopupInputType, ButtonTheme, Users, popup-register, popup-themes
Gerelateerde popupsPOP-BEH-GEN-SAVE-FAILED, POP-BEH-GEN-VALIDATION-FAILED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Het systeem valideert een popupwijziging server-side en slaat uitsluitend toegestane beheerbare velden op. Bij succesvolle opslag worden het popuprecord en de wijzigingsgeschiedenis in één samenhangende verwerking bijgewerkt.

Popupbeheer is geen vrije popupbuilder. Het beheer werkt binnen bestaande popuprecords en respecteert de scheiding tussen beheerbare inhoud en codegedreven structuur. Popupteksten, knopteksten, acties, inputvelden en themekeuzes worden niet in usecases gedupliceerd.

3. Scope

Deze usecase beschrijft:

  • Ontvangen van een wijzigingspayload uit de popupeditor.
  • Server-side autorisatie, recordcontrole, veldrechtencontrole en concurrencycontrole.
  • Valideren van titel, tekst, knopteksten, inputlabel, custombeperkingen en read-only velden.
  • Atomair opslaan van toegestane beheerbare velden.
  • Vastleggen van historymoment en veldniveauverschillen.
  • Teruggeven van actuele opgeslagen waarden aan de beheerinterface.

Deze usecase beschrijft niet:

  • Nieuwe popuprecords aanmaken via de GUI.
  • Popuprecords verwijderen of deactiveren via de GUI.
  • PopupKey, Variant, ThemeKey, knopacties of CustomRendererKey wijzigen.
  • Popup-themes beheren.
  • Runtime bepalen wanneer popups in gebruikersflows verschijnen.
  • Popupteksten of knopteksten buiten het popupregister dupliceren.
  • Onderliggende code, migraties of seeddefinities wijzigen via de beheerinterface.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd en heeft een actief intern OefenHub-account.
PRE-002De gebruiker heeft server-side een actieve beheerderrol.
PRE-003De route of actie ligt binnen Site Instellingen > Popups beheren.
PRE-004De frontend gebruikt actuele serverrespons en vertrouwt niet op oude clientstate.
PRE-005Popupregister en popup-themes zijn als bronafspraak beschikbaar voor interpretatie van popuprecords.

5. Post-condities

IDResultaat
POST-001Bij succesvolle validatie zijn uitsluitend beheerbare velden in PopupDetails gewijzigd.
POST-002Bij succesvolle opslag zijn UpdatedAtUtc, UpdatedByUserId en historygegevens vastgelegd.
POST-003Bij validatie-, concurrency- of historyfouten is geen gedeeltelijke wijziging opgeslagen.
POST-004Technische sleutels, variant, theme, knopacties en rendererkeys zijn ongewijzigd gebleven.
POST-005De beheerinterface toont actuele opgeslagen waarden of veldspecifieke foutinformatie.

6. Trigger

De beheerder kiest Opslaan na het wijzigen van beheerbare popupvelden.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderPopupeditorKiest Opslaan.Frontend stuurt wijzigingspayload met recordversie.UC-BEH-POP-003.
2BackendAutorisatiecomponentControleert actieve beheerdercontext.Zonder beheerderrol stopt verwerking.Server-side verplicht.
3BackendPopupserviceLaadt actuele recordversie.Systeem controleert bestaan en concurrency.PopupDetails.
4BackendValidatieserviceControleert dat alleen beheerbare velden zijn gewijzigd.Read-only wijzigingen worden geweigerd.PopupKey, Variant, ThemeKey, acties, renderer.
5BackendValidatieserviceControleert lengtes, lege waarden, inputlabel en custombeperkingen.Fouten worden veldspecifiek teruggegeven.Titel, tekst, knoptekst, inputlabel.
6BackendDomeinservicePast toegestane wijzigingen toe.PopupDetails krijgt nieuwe beheerbare waarden.Update.
7BackendHistoryserviceRegistreert historymoment en veldverschillen.Wijziging is auditbaar.PopupDetailsHistory, PopupDetailsHistoryItems.
8BackendTransactieRondt atomair af.Bij fout wordt alles teruggedraaid.Geen gedeeltelijke opslag.
9BackendFrontendLevert opgeslagen record en eventuele bevestigingsstatus.Frontend toont actuele waarden.Readmodelverversing.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Geen actieve beheerderrol.Backend blokkeert de opslag.Inline toegang geweigerd of veilige redirect.Geen.
ALT-0023Record bestaat niet.Opslaan wordt geweigerd.Inline niet-beschikbaarmelding.Geen.
ALT-0033Recordversie is verouderd.Opslaan wordt geblokkeerd; actuele waarden moeten opnieuw worden geladen.Inline conflictmelding.Geen.
ALT-0044Payload bevat wijziging aan read-only veld.Backend weigert de opslag.POP-BEH-GEN-VALIDATION-FAILED of inline fout.Geen.
ALT-0055Titel, tekst, knoptekst of inputlabel is ongeldig.Opslaan wordt geweigerd met veldfouten.POP-BEH-GEN-VALIDATION-FAILED.Geen.
ALT-0065Niet-custom popup probeert afwijkende layout of meerdere inputvelden te krijgen.Opslaan wordt geblokkeerd.Inline validatie.Geen.
ALT-0077Historyregistratie faalt.De hele transactie wordt teruggedraaid.POP-BEH-GEN-SAVE-FAILED.Geen blijvende mutatie.
ALT-0088Databaseactie faalt technisch.Geen gedeeltelijke opslag; veilige foutmelding.POP-BEH-GEN-SAVE-FAILED.Geen of rollback.

9. Business rules

IDRegel
BR-UC-BEH-POP-004-001Opslaan is alleen toegestaan voor bestaande popuprecords.
BR-UC-BEH-POP-004-002De backend valideert alle veldrechten opnieuw, ongeacht frontendgedrag.
BR-UC-BEH-POP-004-003Read-only technische velden mogen niet gewijzigd worden.
BR-UC-BEH-POP-004-004Niet-custom popups mogen niet via beheer tot afwijkende layouts worden omgebogen.
BR-UC-BEH-POP-004-005Iedere succesvolle wijziging registreert history met actor, UTC-tijdstip en veldverschillen.
BR-UC-BEH-POP-004-006Recordupdate en historyregistratie vormen één atomair geheel.

10. Datavalidatie

Veld / objectValidatie
BeheerdercontextServer-side actieve beheerderrol verplicht.
PopuprecordHet record moet bestaan en als bestaand popuprecord bekend zijn.
PopupKeyMoet bestaan en blijft read-only.
VariantMoet een bekende PopupVariant zijn en blijft read-only.
ThemeKeyBlijft read-only en moet verwijzen naar een bestaande themedefinitie.
KnopactiesActionCallMethod en technische actie-identifiers zijn read-only.
CustomRendererKeyAlleen relevant bij Custom-popups en blijft read-only.
TitelMaximaal 50 tekens wanneer beheerbaar.
TekstMaximaal 1000 tekens wanneer beheerbaar.
KnoptekstMaximaal 20 tekens per zichtbare knop wanneer beheerbaar.
InputlabelAlleen beheerbaar wanneer de bestaande variant een inputveld ondersteunt.
RenderingBeheerbare tekst mag geen actieve of onveilige inhoud veroorzaken.
TijdstipWijzigingsmomenten worden in UTC vastgelegd.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
6UpdatePopupDetailsAlleen beheerbare velden worden bijgewerkt, inclusief UpdatedAtUtc en UpdatedByUserId.
7InsertPopupDetailsHistoryEén historymoment voor de opslaanactie.
7InsertPopupDetailsHistoryItemsVeldniveauverschillen voor gewijzigde beheerbare velden.

12. Geen datamutaties

EntiteitReden
PopupKey, Variant, ThemeKey, ActionCallMethod en CustomRendererKeyBlijven read-only en codegedreven.
Popupregister en popup-themesOntwerpbronnen blijven bronhoudend en worden niet door de opslagactie aangepast.
Nieuwe popuprecordsNieuwe definities ontstaan alleen via code en migraties.
Popupdefinities verwijderen of deactiverenGeen GUI-functie binnen popupbeheer.
Runtime gebruikersdataOefenruns, meldingen, relaties, berichten en accounts worden niet gewijzigd.

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

Usecases verwijzen alleen naar PopupKey. Popupteksten, knopteksten, acties, inputvelden en themakeuzes worden centraal beheerd in het popupregister en de popup-themes.

PopupKeyMomentDoel
POP-BEH-GEN-VALIDATION-FAILEDWanneer servervalidatie de wijziging blokkeert.Aangeven dat veldfouten in het formulier gecorrigeerd moeten worden.
POP-BEH-GEN-SAVE-FAILEDWanneer opslag of historyregistratie technisch faalt.Veilige foutmelding zonder interne details.

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

DoeldocumentAfleiding
Functioneel OntwerpBeschrijft welke popupvelden beheerbaar zijn, welke velden read-only blijven en hoe de beheerder bestaande popuprecords raadpleegt of wijzigt.
Technisch OntwerpTechnisch Ontwerp: domeinmodel en admin-eigenaarschap, databaseontwerp en frontendcompositie beschrijven de technische uitwerking. Beschrijf server-side autorisatie, readmodelopbouw, commandverwerking en historyregistratie, inclusief bescherming van technische sleutels en codegedreven velden.
Software Requirements SpecificatieBeschrijft requirements voor toegangscontrole, validatiegrenzen, veilige foutafhandeling, immutable history en de scheiding tussen beheerbare tekst en technische popupdefinities.
Database-informatieControleer aansluiting van PopupDetails, PopupDetailsHistory en PopupDetailsHistoryItems, inclusief veldlengtes, concurrency en auditvelden.
Ontwerpbronnen en registersHoud popupregister, popup-themes, autorisatiematrix, usecase-popup-matrix en usecase-requirement-matrix consistent met deze usecase.

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-BEH-POP-004-001SRS-ADM-002
SRS-ADM-001
AC-ADM-002
AC-ADM-001
De actie uitsluitend toestaan aan gebruikers met een actieve beheerderrol
REQ-UC-BEH-POP-004-002SRS-AUTH-001
SRS-AUTH-002
SRS-ADM-002
SRS-ADM-001
AC-AUTH-001
AC-AUTH-002
AC-ADM-002
AC-ADM-001
Alle beheerautorisatie server-side controleren en mag niet vertrouwen op clientstate of routeparameters
REQ-UC-BEH-POP-004-003SRS-AUTH-004
SRS-ACC-003
SRS-ACC-005
SRS-ADM-001
SRS-POP-001
SRS-NFR-SEC-001
AC-AUTH-004
AC-ACC-003
AC-ACC-005
AC-ADM-001
AC-POP-001
AC-NFR-SEC-001
Onbekende, ontbrekende of niet-toegankelijke popuprecords veilig afhandelen zonder technische details te tonen
REQ-UC-BEH-POP-004-004SRS-ADM-001
SRS-POP-001
AC-ADM-001
AC-POP-001
PopupKey, Variant, ThemeKey, knopacties en CustomRendererKey read-only houden in de beheerinterface
REQ-UC-BEH-POP-004-005SRS-ADM-001
SRS-POP-001
AC-ADM-001
AC-POP-001
Popupteksten, knopteksten, inputlabels en themekeuzes niet dupliceren buiten het centrale popupregister en popup-themes
REQ-UC-BEH-POP-004-006SRS-AUTH-001
SRS-ADM-001
AC-AUTH-001
AC-ADM-001
Wijzigingen pas opslaan nadat server-side validatie van record, veldrechten, lengtes, concurrency en custombeperkingen is geslaagd
REQ-UC-BEH-POP-004-007SRS-ADM-001
SRS-NFR-AUD-001
AC-ADM-001
AC-NFR-AUD-001
Uitsluitend beheerbare velden opslaan en iedere wijziging auditbaar vastleggen met actor, UTC-tijdstip en veldverschillen
REQ-UC-BEH-POP-004-008SRS-SHR-001
SRS-ADM-001
SRS-NFR-AUD-001
AC-SHR-001
AC-ADM-001
AC-NFR-AUD-001
Bij validatie-, concurrency- of historyfouten geen gedeeltelijke wijziging opslaan
REQ-UC-BEH-POP-004-009SRS-ADM-001
AC-ADM-001
Titel, tekst, knopteksten en inputlabels valideren op de vastgestelde maximale lengtes wanneer deze velden beheerbaar zijn
REQ-UC-BEH-POP-004-010SRS-ADM-001
SRS-POP-001
AC-ADM-001
AC-POP-001
De usecase Popupwijziging valideren en opslaan uitvoeren binnen de afbakening van Beheerder / Popupbeheer