Skip to main content

UC-BEH-FEAT-008 — Systeemnotificatie-weergaveregel toepassen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-FEAT-008
NaamSysteemnotificatie-weergaveregel toepassen
DomeinBeheerder / Features en systeemnotificaties
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, database, autorisatiecomponent, beheerlogcomponent
RolcontextActieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenSite Instellingen > Features > tab Systeemnotificaties
Gerelateerde usecasesUC-BEH-FEAT-003, UC-BEH-FEAT-004, UC-BEH-FEAT-005, UC-GEN-NOT-001, UC-GEN-NOT-003
Primaire entiteitenSiteNotifications, SiteNotificationHistory, Users
Secundaire entiteiten / eventsSiteNotificationChanged
Gerelateerde popupsPOP-BEH-NOT-DISPLAYRULE-INFO, POP-BEH-NOT-SAVED, POP-BEH-NOT-SAVE-FAILED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft de functionele betekenis van de weergaveregel van een systeemnotificatie binnen beheer. De beheerder kiest tussen DisplayRule Always en OncePerBrowser. De gekozen regel bepaalt hoe de generieke gebruikersweergave de notificatie beoordeelt na het laden van de frontpage.

De mutatie blijft beperkt tot SiteNotifications en de bijbehorende notificatiehistorie. De gebruikersgerichte verwerking blijft bronhoudend in de generieke systeemnotificatie-usecases.

Alle datum- en statusafleidingen gebruiken UTC als technische bron en lokale tijd uitsluitend voor presentatie.

Uitgangspunten

  • Systeemnotificaties zijn geen mailbox-systeemberichten.
  • Systeemnotificaties zijn geen popupregister-popups.
  • Er bestaat geen server-side per-gebruiker-seentabel.
  • De beheerdercontext wordt bij iedere mutatie opnieuw server-side gecontroleerd.

3. Scope

Deze usecase beschrijft:

  • Kiezen van DisplayRule bij het aanmaken van een systeemnotificatie.
  • Wijzigen van DisplayRule bij een bestaande systeemnotificatie.
  • Valideren dat alleen Always en OncePerBrowser zijn toegestaan.
  • Vastleggen van de gekozen weergaveregel op SiteNotifications.
  • Auditbaar vastleggen van wijzigingen in SiteNotificationHistory.
  • Functioneel uitleggen dat OncePerBrowser clientside via een browserwaarde op notificatie-id wordt afgedwongen.

Deze usecase beschrijft niet:

  • Eindgebruikersweergave van de notificatie.
  • Aanmaken van mailbox-systeemberichten.
  • Aanmaken of wijzigen van popupdefinities.
  • Vrij beheren van enumwaarden.
  • Server-side gebruikersseenstatus opslaan.

3.1 Afbakening met aangrenzende usecases

OnderdeelAfbakening
UC-BEH-FEAT-004Past de gekozen displayregel toe bij aanmaak van een nieuwe notificatie.
UC-BEH-FEAT-005Past een wijziging van displayregel toe bij een bestaande notificatie.
UC-GEN-NOT-001Gebruikt de opgeslagen displayregel bij het bepalen of een notificatie getoond wordt.
UC-GEN-NOT-003Verwerkt OncePerBrowser aan gebruikerszijde via browserwaarde.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is succesvol ingelogd in OefenHub.
PRE-002De backend heeft server-side vastgesteld dat de gebruiker een actieve beheerderrol heeft.
PRE-003De Site Instellingen-route is beschikbaar via de beheerdernavigatie.
PRE-004Clientstate, querystringwaarden of zichtbare UI-elementen bepalen niet zelfstandig de autorisatie.
PRE-005De beheerder werkt binnen de aanmaak- of wijzigflow van een systeemnotificatie.
PRE-006De toegestane DisplayRule-sleutelset is server-side beschikbaar.

5. Post-condities

IDResultaat
POST-001De gekozen displayregel is opgeslagen wanneer de aanmaak- of wijzigmutatie geldig is.
POST-002Bij wijziging van een bestaande notificatie bevat SiteNotificationHistory de oude en nieuwe displayregel.
POST-003De generieke notificatiecomponent kan de opgeslagen displayregel toepassen bij gebruikersweergave.
POST-004Er is geen server-side seenstatus aangemaakt.
POST-005Er is geen mailboxbericht of popupdefinitie aangemaakt.

6. Trigger

De usecase start wanneer de beheerder bij het aanmaken of wijzigen van een systeemnotificatie de weergaveregel kiest of aanpast.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderSysteemnotificaties-tabKiest Always of OncePerBrowser.De frontend toont toelichting op de betekenis van de gekozen regel.Gesloten sleutelset.
2FrontendDetailpaneelStuurt de gekozen displayregel mee met aanmaak of wijziging.De backend ontvangt de waarde als onderdeel van de notificatiemutatie.DisplayRule.
3BackendAutorisatiecomponentControleert beheerdercontext opnieuw.Bij ontbreken van rechten wordt de mutatie geweigerd.Server-side autorisatie.
4BackendValidatieControleert dat de displayregel een toegestane waarde heeft.Ongeldige waarden worden geweigerd.Always, OncePerBrowser.
5BackendDatabase-transactieSlaat de gekozen displayregel op bij SiteNotifications.De wijziging wordt atomair verwerkt.Aanmaak- of wijzigtransactie.
6BackendHistorieSchrijft waar relevant oude en nieuwe displayregel naar SiteNotificationHistory.De keuze is achteraf reconstrueerbaar.Audit.
7FrontendOverzichtToont de actuele displayregel.De beheerder ziet de opgeslagen keuze.Readmodel.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0011Notificatie bestaat niet meer.De backend blokkeert de actie en ververst het overzicht.Foutpopup.Geen.
ALT-0023Beheerdercontext is vervallen.De backend weigert de mutatie.Foutpopup.Geen.
ALT-0034Veldvalidatie faalt.De wijziging wordt niet opgeslagen en de beheerder krijgt veldgerichte terugkoppeling.Foutpopup.Geen.
ALT-0045Opslaan of history schrijven faalt.De transactie wordt teruggedraaid.Foutpopup.Geen gedeeltelijke mutatie.
ALT-0054Beheerder verwacht opnieuw tonen na inhoudelijke wijziging.De beheerinterface moet functioneel duidelijk maken dat een nieuwe notificatie nodig is wanneer bestaande browsermarkers opnieuw tonen blokkeren.POP-BEH-NOT-DISPLAYRULE-INFO.Geen extra mutatie.

9. Business rules

IDBusiness rule
BR-001Een wijziging aan een notificatie doorbreekt een bestaande OncePerBrowser-browsermarker niet automatisch.
BR-002Een notificatie blijft een eigen beheerdomein en veroorzaakt geen SystemMessage.
BR-003EndAtUtc null betekent geen geplande einddatum.
BR-004Afgeleide statussen worden niet als permanente statuskolom behandeld.
BR-005Oude en nieuwe veldwaarden worden auditbaar vastgelegd.
BR-006DisplayRule Always wordt niet permanent als gezien geregistreerd.
BR-007DisplayRule OncePerBrowser gebruikt een browsermarker op notificatie-id en geen server-side seentabel.
BR-008Wijziging van een bestaande notificatie doorbreekt een bestaande browsermarker niet automatisch.

10. Datavalidatie

IDValidatie
VAL-001Title blijft maximaal 50 tekens.
VAL-002BodyText blijft maximaal 1000 tekens.
VAL-003AudienceType, NotificationType en DisplayRule blijven gesloten sleutelsets.
VAL-004EndAtUtc mag niet vóór StartAtUtc liggen.
VAL-005Datum/tijd wordt technisch in UTC opgeslagen.
VAL-006De geselecteerde notificatie moet bestaan en wijzigbaar zijn vanuit de betreffende tab.

11. Datamutaties en events

IDMutatie / eventToelichting
MUT-001SiteNotifications insert/updateDe gekozen DisplayRule wordt opgeslagen als onderdeel van aanmaak of wijziging.
MUT-002SiteNotificationHistory insertBij wijziging van een bestaande notificatie worden oude en nieuwe waarde plus actor en tijdstip vastgelegd.
MUT-003SiteNotificationChanged eventBij wijziging van een bestaande notificatie kan de beheerhistorie of het readmodel worden ververst.

12. Geen datamutaties

IDGeen mutatieReden
NO-001SystemMessagesEr ontstaat geen mailbox-systeembericht.
NO-002PopupDetailsEr wordt geen popupdefinitie aangemaakt of gewijzigd.
NO-003GebruikersseenstatusEr wordt geen server-side seenrecord aangemaakt.
NO-004BrowsermarkersBeheer wijzigt bestaande browsermarkers van gebruikers niet.
NO-005Andere notificatiesAndere records blijven ongewijzigd.

13. State diagram

Niet van toepassing. DisplayRule is geen zelfstandig statusmodel. De waarde wordt als eigenschap van SiteNotifications opgeslagen en door de generieke systeemnotificatieflows toegepast bij gebruikersweergave.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

Deze usecase verwijst uitsluitend naar PopupKey. Popupteksten, knopteksten, inputlabels en themakeuzes blijven bronhoudend in het popupregister en popup-themes.

PopupKeyGebruik
POP-BEH-NOT-DISPLAYRULE-INFOZie popupregister voor tekst en knoppen.
POP-BEH-NOT-SAVEDZie popupregister voor tekst en knoppen.
POP-BEH-NOT-SAVE-FAILEDZie popupregister voor tekst en knoppen.

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

DocumentAfleiding
Functioneel OntwerpBeschrijft Always en OncePerBrowser als beheerbare weergaveregels voor systeemnotificaties.
Technisch OntwerpTechnisch Ontwerp: communicatie en systeemnotificaties, readmodels en badges en frontendstate beschrijven de technische uitwerking. Vraagt enumvalidatie, opslag op SiteNotifications en toepassing door de generieke notificatiecomponent.
Software Requirements SpecificationLevert eisen voor browsergebaseerde eenmalige weergave, geen server-side seen-tabel en audit bij wijziging.

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
UC-BEH-FEAT-008-REQ-001SRS-ADM-001
SRS-POP-005
AC-ADM-001
AC-POP-005
Uitsluitend DisplayRule-waarden Always en OncePerBrowser accepteren
UC-BEH-FEAT-008-REQ-002SRS-AUTH-001
SRS-ADM-001
SRS-POP-005
AC-AUTH-001
AC-ADM-001
AC-POP-005
Beheer duidelijk maken dat OncePerBrowser clientside werkt en niet gebruikersgebonden server-side
UC-BEH-FEAT-008-REQ-003SRS-ADM-001
SRS-NFR-AUD-001
AC-ADM-001
AC-NFR-AUD-001
Een wijziging van displayregel auditbaar vastleggen
UC-BEH-FEAT-008-REQ-004SRS-AUTH-001
SRS-ADM-001
AC-AUTH-001
AC-ADM-001
Geen server-side seenstatus per gebruiker aanmaken
UC-BEH-FEAT-008-REQ-005SRS-ADM-001
SRS-POP-002
AC-ADM-001
AC-POP-002
Bestaande browsermarkers niet automatisch doorbreken wanneer een bestaande notificatie wordt gewijzigd
UC-BEH-FEAT-008-REQ-006SRS-ADM-001
SRS-POP-002
AC-ADM-001
AC-POP-002
De generieke notificatiecomponent de opgeslagen displayregel laten toepassen bij gebruikersweergave