Skip to main content

UC-BEH-FEAT-006 — Systeemnotificatie uitschakelen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-FEAT-006
NaamSysteemnotificatie uitschakelen
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-008, UC-GEN-NOT-001
Primaire entiteitenSiteNotifications, SiteNotificationHistory, Users
Secundaire entiteiten / eventsSiteNotificationChanged
Gerelateerde popupsPOP-BEH-NOT-DISABLE-CONFIRM, POP-BEH-NOT-DISABLED, POP-BEH-NOT-DISABLE-FAILED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een beheerder een systeemnotificatie handmatig uitschakelt. Uitschakelen vult EndAtUtc met het actuele UTC-tijdstip, waardoor nieuwe bezoekers of gebruikers de notificatie niet meer als actief zien.

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:

  • Selecteren van één bestaande systeemnotificatie.
  • Kiest Uitschakelen voor een geselecteerde actieve of geplande notificatie.
  • Valideren van gesloten sleutelsets en datumregels.
  • Vastleggen van notificatiehistorie.
  • Verversen van het notificatieoverzicht.
  • Handmatig beëindigen door EndAtUtc te vullen met nu.

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-003Levert het overzicht en de selectie van de notificatie.
UC-BEH-FEAT-008Beschrijft de displayregel en gevolgen voor browsermarkers.
UC-GEN-NOT-001Toont actieve notificaties aan gebruikers.

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 systeemnotificatie bestaat.
PRE-006De beheerder heeft de notificatie geselecteerd vanuit een toegestane beheer-tab.

5. Post-condities

IDResultaat
POST-001De notificatie is bijgewerkt wanneer alle validaties slagen.
POST-002SiteNotificationHistory bevat de relevante wijziging.
POST-003Afgeleide status wordt opnieuw berekend in het overzicht.
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 een geselecteerde systeemnotificatie kiest voor systeemnotificatie uitschakelen.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderSysteemnotificaties-tabSelecteert een notificatie.De frontend toont de beheerbare velden.SiteNotifications.
2BeheerderDetailpaneelKiest Uitschakelen voor een geselecteerde actieve of geplande notificatie.De frontend toont waar nodig een bevestigingspopup.PopupKey.
3BackendAutorisatiecomponentControleert beheerdercontext opnieuw.Mutatie wordt alleen bij actieve beheerder verwerkt.Server-side autorisatie.
4BackendValidatieControleert status, sleutelsets, datums en veldlengtes.Ongeldige invoer wordt geweigerd.Centrale sleutelsets.
5BackendDatabase-transactieVult EndAtUtc met het actuele UTC-tijdstip en werkt UpdatedAtUtc en UpdatedByUserId bij.De wijziging wordt atomair opgeslagen.SiteNotifications.
6BackendHistorieSchrijft SiteNotificationHistory met oud en nieuw.Wijziging is achteraf reconstrueerbaar.Audit.
7FrontendOverzichtVerverst de tab en statuslabels.De beheerder ziet de actuele toestand.Afgeleide status.

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-0051Notificatie is al verlopen.De actie wordt geblokkeerd of als reeds uitgeschakeld getoond.Niet van toepassing.Geen.
ALT-0065EndAtUtc lag al in het verleden.De backend voert geen tweede beëindiging uit tenzij dit als corrigerende wijziging is toegestaan.Foutpopup of neutrale melding.Geen of update volgens wijzigflow.

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-006Uitschakelen verwijdert de notificatie niet.
BR-007Uitschakelen veroorzaakt geen compensatie voor gebruikers die de notificatie al zagen.
BR-008Een reeds geopende gebruikerssessie wordt niet met terugwerkende kracht herschreven.

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 updateVult EndAtUtc met het actuele UTC-tijdstip en werkt UpdatedAtUtc en UpdatedByUserId bij.
MUT-002SiteNotificationHistory insertOude en nieuwe waarden plus actor en tijdstip worden vastgelegd.
MUT-003SiteNotificationChanged eventInterne gebeurtenis voor beheerhistorie en readmodelverversing.

12. Geen datamutaties

IDGeen mutatieReden
NO-001SystemMessagesGeen mailbox-systeembericht.
NO-002PopupDetailsGeen popupdefinitie.
NO-003GebruikersseenstatusGeen server-side seenrecord.
NO-004BrowsermarkersBeheer wijzigt browsermarkers van gebruikers niet.
NO-005Andere notificatiesAndere records blijven ongewijzigd.

13. State diagram

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-DISABLE-CONFIRMZie popupregister voor tekst en knoppen.
POP-BEH-NOT-DISABLEDZie popupregister voor tekst en knoppen.
POP-BEH-NOT-DISABLE-FAILEDZie popupregister voor tekst en knoppen.

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

DocumentAfleiding
Functioneel OntwerpBeschrijft beheeracties binnen Systeemnotificaties-tab.
Technisch OntwerpTechnisch Ontwerp: communicatie en systeemnotificaties, readmodels en badges en frontendstate beschrijven de technische uitwerking. Vraagt transactionele update, UTC-datumverwerking en history.
Software Requirements SpecificationLevert eisen voor validatie, audit en scheiding van notificatiedomeinen.

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-006-REQ-001SRS-ADM-005
SRS-ADM-001
SRS-POP-002
AC-ADM-005
AC-ADM-001
AC-POP-002
Een notificatie uitschakelen door EndAtUtc met het actuele UTC-tijdstip te vullen
UC-BEH-FEAT-006-REQ-002SRS-RDM-001
SRS-ADM-001
SRS-POP-002
AC-RDM-001
AC-ADM-001
AC-POP-002
Een uitgeschakelde notificatie in verlopen overzichten laten terugkomen
UC-BEH-FEAT-006-REQ-003SRS-ADM-001
SRS-POP-002
SRS-NFR-AUD-001
AC-ADM-001
AC-POP-002
AC-NFR-AUD-001
Wijzigingen aan systeemnotificaties auditbaar vastleggen
UC-BEH-FEAT-006-REQ-004SRS-AUTH-001
SRS-ADM-001
AC-AUTH-001
AC-ADM-001
Geen server-side seenstatus per gebruiker aanmaken
UC-BEH-FEAT-006-REQ-005SRS-RDM-001
SRS-ADM-001
AC-RDM-001
AC-ADM-001
Statuslabels na wijziging opnieuw afleiden uit StartAtUtc en EndAtUtc