Skip to main content

UC-GEN-MSG-005 — Privéberichtthread verwijderen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-GEN-MSG-005
NaamPrivéberichtthread verwijderen
DomeinBerichten
Primaire actorIngelogde gebruiker
Secundaire actor(en)Systeem, andere deelnemer(s) aan de privéberichtthread, autorisatiecomponent, realtime notificatiecomponent
RolcontextIedere ingelogde rolcontext waarvoor de gebruiker toegang heeft tot het berichtenoverzicht; verwijderen is uitsluitend toegestaan voor privéberichtthreads waarin de gebruiker participant is
Betrokken schermenSCH-GEN-02 — Berichtenoverzicht, SCH-GEN-04 — Open bericht
Gerelateerde usecasesUC-GEN-MSG-001 — Berichtenoverzicht bekijken; UC-GEN-MSG-003 — Bericht openen; UC-GEN-MSG-002 — Privébericht opstellen en verzenden; UC-GEN-MSG-004 — Bericht beantwoorden
Primaire entiteitenPrivateMessageThreads, PrivateMessageThreadParticipants, PrivateMessages
Secundaire entiteiten / eventsparticipant-readstate/readmodel, PrivateMessageThreadEvents, PrivateMessageThreadRemovedFromMailbox, MessageUnreadCountChanged, PrivateMessageThreadDeleteFailed
Gerelateerde popupsPOP-GEN-MSG-DELETE-CONFIRM, POP-GEN-MSG-NOT-AVAILABLE, POP-GEN-MSG-DELETED, POP-GEN-MSG-DELETE-FAILED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust have

2. Omschrijving

De gebruiker verwijdert een privéberichtthread uit de eigen mailboxweergave. De handeling verwijdert de thread niet voor andere deelnemers en verwijdert ook geen individuele PrivateMessages-records uit de database. Functioneel betekent verwijderen dat de eigen participantregel zodanig wordt gemarkeerd dat de thread niet langer in het eigen berichtenoverzicht verschijnt en niet langer meetelt in de eigen mailbox- en ongelezentellers.

De usecase geldt uitsluitend voor privéberichtthreads. Systeemberichten blijven niet-verwijderbaar en tonen in het overzicht alleen een uitgeschakelde verwijderactie of gelijkwaardige toelichting. Verwijderen van een privéthread vraagt altijd een expliciete bevestiging voordat de mutatie wordt uitgevoerd.

De backend voert de objectcontrole server-side uit. Een routeparameter, lijstregel of frontendstatus is nooit voldoende bewijs dat de gebruiker de thread mag verwijderen. De gebruiker mag uitsluitend de eigen PrivateMessageThreadParticipants-context aanpassen; participantregels van andere deelnemers, eerdere berichten, systeemberichten, relatiegegevens en thread-events blijven ongewijzigd.

3. Scope

Deze usecase beschrijft:

  • het starten van de verwijderactie vanuit het berichtenoverzicht;
  • het starten van dezelfde verwijderactie vanuit de open privéthreadweergave;
  • het onderscheid tussen privéthread verwijderen en systeembericht niet-verwijderbaar tonen;
  • de bevestigingsstap vóór de mutatie;
  • server-side controle op authenticatie, participantcontext, objecttype en mailboxstatus;
  • het participantgebonden verwijderen van de thread uit de eigen mailboxweergave;
  • het opnieuw bepalen van de eigen berichtenlijst, samenvattingsaantallen en ongelezenbadge;
  • het onveranderd laten van de thread voor andere deelnemers;
  • het onveranderd laten van bestaande berichtinhoud, thread-events en systeemberichten;
  • foutpaden voor niet-bestaande, al verwijderde, niet-geautoriseerde of technisch niet verwijderbare threads;
  • popupverwijzingen naar centrale popupkeys.

Deze usecase beschrijft niet:

  • het hard verwijderen van privéberichten uit de database;
  • het verwijderen van systeemberichten;
  • het verlaten van een groepsgesprek als aparte participantactie;
  • het beantwoorden of aanmaken van privéberichten;
  • het markeren als gelezen of ongelezen;
  • het verwerken van retentie of automatische cleanup;
  • het verwijderen van een account, relatie of melding;
  • het beheer van popupteksten, knopteksten of popup-themes.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd.
PRE-002De gebruiker bevindt zich in het berichtenoverzicht of in de open detailweergave van een privéberichtthread.
PRE-003De geselecteerde regel of detailweergave verwijst naar een PrivateMessageThreads-context en niet naar een SystemMessages-record.
PRE-004De backend kan een PrivateMessageThreadParticipants-record bepalen voor de combinatie van de ingelogde gebruiker en de geselecteerde thread.
PRE-005De thread is voor de ingelogde gebruiker nog niet uit de eigen mailboxweergave verwijderd.
PRE-006Het systeem kan de verwijdermutatie en tellerherberekening transactioneel of consistent verwerken.
PRE-007De relevante popupdefinities zijn via het popupregister beschikbaar als codegedreven popupkeys.

5. Post-condities

IDResultaat
POST-001Bij annuleren blijft de privéthread zichtbaar voor de gebruiker en wordt geen datamutatie uitgevoerd.
POST-002Bij succesvol verwijderen is de eigen participantregel gemarkeerd als verwijderd uit de mailboxweergave.
POST-003De privéthread verschijnt niet langer in het eigen berichtenoverzicht van de gebruiker.
POST-004De privéthread telt niet langer mee in de eigen privéberichtenteller, zoekresultaten, filterresultaten of ongelezenbadge.
POST-005Bestaande PrivateMessages-records blijven bestaan.
POST-006De privéthread blijft zichtbaar en beantwoordbaar voor andere deelnemers zolang hun eigen participantcontext dat toestaat.
POST-007Participantregels van andere deelnemers worden niet gewijzigd.
POST-008Er wordt geen systeembericht aangemaakt voor het verwijderen uit de eigen mailbox.
POST-009Bij technische of autorisatiegerelateerde fout wordt geen gedeeltelijke mutatie doorgevoerd.
POST-010Bij een reeds verwijderde of niet meer beschikbare thread wordt de eigen lijstcontext ververst en wordt geen tweede verwijdermutatie uitgevoerd.
POST-011Als uiteindelijk geen enkele deelnemer de thread nog functioneel zichtbaar heeft, mag de thread administratief als gesloten of cleanup-kandidaat worden beschouwd zonder dat deze gebruikersactie berichten hard verwijdert.

6. Trigger

De usecase start wanneer de gebruiker in SCH-GEN-02 — Berichtenoverzicht de contextactie Gesprek verlaten kiest bij een privéberichtthread, of wanneer de gebruiker in SCH-GEN-04 — Open bericht dezelfde verwijderactie kiest voor de geopende privéthread.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1GebruikerSCH-GEN-02 — Berichtenoverzicht of SCH-GEN-04 — Open berichtKiest Gesprek verlaten bij een privéberichtthread.Het systeem start de verwijderflow.De actie is alleen actief voor privéthreads.
2SysteemFrontendBepaalt de geselecteerde threadreferentie en toont een bevestigingspopup.POP-GEN-MSG-DELETE-CONFIRM wordt geopend.Popupinhoud staat centraal in het popupregister.
3GebruikerPopupBevestigt de verwijderactie.De frontend stuurt een verwijdercommand naar de backend.Annuleren beëindigt de flow zonder mutatie.
4SysteemBackendControleert authenticatie.Alleen ingelogde gebruikers mogen doorgaan.Niet-ingelogde of verlopen sessies worden geblokkeerd.
5SysteemBackendControleert dat de opgegeven referentie een privéthread is.Systeemberichten of onbekende objecttypen worden niet verwijderd.SystemMessages zijn niet-verwijderbaar.
6SysteemBackendLaadt de participantregel voor de ingelogde gebruiker.Alleen bij geldige participantcontext wordt de mutatie voorbereid.PrivateMessageThreadParticipants.UserId = huidige gebruiker.
7SysteemBackendControleert of de thread voor deze gebruiker nog zichtbaar is.Bij reeds verwijderde thread wordt geen dubbele mutatie uitgevoerd.DeletedAtUtc of gelijkwaardige mailboxverwijdering moet leeg zijn.
8SysteemBackendMarkeert de eigen participantregel als verwijderd uit de mailbox.De thread wordt voor deze gebruiker uit de mailboxweergave gehaald.Minimaal DeletedAtUtc en waar beschikbaar DeletedByUserId of actorcontext.
9SysteemBackendBepaalt of eigen ongelezenstatus en samenvattingsaantallen wijzigen.De eigen tellers worden opnieuw afgeleid of het readmodel wordt bijgewerkt.Verwijderde threads tellen niet langer mee voor de eigen mailbox.
10SysteemBackendLegt de functionele gebeurtenis vast.Event/logging wordt beschikbaar voor traceerbaarheid.PrivateMessageThreadRemovedFromMailbox.
11SysteemBackendRondt de transactie af.De backend geeft succes terug aan de frontend.Geen mutatie aan berichten of andere deelnemers.
12SysteemFrontendVerwijdert de threadregel uit het overzicht of navigeert terug naar het overzicht.De gebruiker ziet de bijgewerkte mailboxcontext.Vanuit detailweergave wordt niet op een niet-zichtbare thread blijven staan.
13SysteemFrontend / headerWerkt samenvattingsaantallen, filters, paginering en ongelezenbadge bij.De eigen tellerwaarden sluiten weer aan op de server-side mailboxstatus.Bij leerlingen tijdens actieve oefenrun blijft alleen de badge visueel verborgen; de onderliggende status is wel bijgewerkt.
14SysteemPopup / meldingGeeft terugkoppeling dat de thread uit de eigen mailbox is verwijderd.POP-GEN-MSG-DELETED of gelijkwaardige succesfeedback wordt getoond.De popuptekst wordt niet in de usecase gedupliceerd.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0011De gebruiker probeert een systeembericht te verwijderen.De verwijderactie is uitgeschakeld of wordt server-side geweigerd.Tooltip of toelichting vanuit SCH-GEN-02; geen actieve verwijderpopup.Geen.
ALT-0022De bevestigingspopup kan niet worden geladen.De verwijderactie wordt niet uitgevoerd.Generieke foutmelding of geen vervolgactie.Geen.
ALT-0033De gebruiker kiest annuleren of sluit de bevestigingspopup.De flow eindigt zonder opslag.Geen of gesloten popup.Geen.
ALT-0044De sessie is verlopen.Het verwijdercommand wordt geweigerd en de gebruiker moet opnieuw inloggen.Sessiemelding volgens generiek authenticatiegedrag.Geen.
ALT-0055De threadreferentie bestaat niet of verwijst niet naar een privéthread.Het systeem behandelt de referentie als niet beschikbaar voor deze gebruiker.POP-GEN-MSG-NOT-AVAILABLE.Geen.
ALT-0066De gebruiker is geen participant van de thread.De backend weigert toegang zonder inhoudelijke gegevens over de thread prijs te geven.POP-GEN-MSG-NOT-AVAILABLE.Geen.
ALT-0077De thread is al eerder uit de eigen mailbox verwijderd.De backend voert geen tweede mutatie uit en de frontend ververst de lijstcontext.POP-GEN-MSG-DELETED.Geen nieuwe mutatie.
ALT-0088De thread bevat nog ongelezen berichten voor de gebruiker.Verwijderen blijft toegestaan; de thread verdwijnt uit de eigen mailbox en telt niet langer mee als ongelezen.POP-GEN-MSG-DELETED.Eigen participantverwijdering; geen readstate-mutatie namens andere deelnemers.
ALT-0098De thread is door retentie of beheerproces intussen niet meer functioneel beschikbaar.De backend voert geen gebruikersmutatie uit en geeft niet-beschikbaarheid terug.POP-GEN-MSG-NOT-AVAILABLE.Geen.
ALT-0108-11Database- of transactiefout tijdens verwijderen.De volledige mutatie wordt teruggedraaid.POP-GEN-MSG-DELETE-FAILED.Geen gedeeltelijke mutatie.
ALT-0119-13Herberekening van badge of samenvatting kan niet realtime worden afgeleverd.De mailboxverwijdering blijft geldig; de teller wordt bij eerstvolgende laadactie opnieuw bepaald.Geen blocking popup voor de gebruiker; technische logging.Participantverwijdering blijft bestaan.
ALT-01212De gebruiker verwijdert vanuit de detailweergave.Na succesvolle verwijdering navigeert het systeem terug naar het overzicht of naar een veilige berichtenroute.POP-GEN-MSG-DELETED.Eigen participantverwijdering.
ALT-01312Door verwijderen verandert de actuele pagina in het overzicht naar een lege pagina.Het systeem toont de dichtstbijzijnde geldige pagina of een lege toestand binnen de actieve filters.Geen extra popup nodig.Geen aanvullende mutatie.
ALT-01414De succespopup wordt niet getoond door navigatie of refresh.De datamutatie blijft leidend; het overzicht toont de bijgewerkte toestand.Geen.Geen aanvullende mutatie.

8.1 Verwijderen en toekomstige replies

Het verwijderen van een privéthread is participantgebonden. De thread verdwijnt uit de eigen mailbox, preview, ongelezenstatus en timelinevensters van de actor, maar blijft voor andere actieve deelnemers bestaan. Latere replies van andere deelnemers maken de verwijderde thread niet automatisch opnieuw zichtbaar voor de actor. Wil iemand opnieuw contact opnemen met een gebruiker die de thread voor zichzelf heeft verwijderd of verlaten, dan gebeurt dat via een nieuwe privéberichtthread.

9. Business rules

IDRegel
BR-UC-GEN-MSG-005-001Alleen privéberichtthreads mogen door een gebruiker uit de eigen mailboxweergave worden verwijderd.
BR-UC-GEN-MSG-005-002Systeemberichten zijn niet-verwijderbaar en mogen niet via een gebruikeractie worden verwijderd of verborgen.
BR-UC-GEN-MSG-005-003Verwijderen van een privéthread is participantgebonden en geldt uitsluitend voor de ingelogde gebruiker.
BR-UC-GEN-MSG-005-004Bestaande privéberichten worden niet hard verwijderd door deze usecase.
BR-UC-GEN-MSG-005-005De backend moet controleren dat de ingelogde gebruiker participant is van de thread voordat de mailboxverwijdering wordt uitgevoerd.
BR-UC-GEN-MSG-005-006Een reeds uit de eigen mailbox verwijderde thread mag niet opnieuw als actieve mailboxregel worden verwijderd.
BR-UC-GEN-MSG-005-007Verwijderde privéthreads tellen niet langer mee in de eigen berichtenlijst, zoekresultaten, filterresultaten, paginering, privéberichtenteller of ongelezenbadge.
BR-UC-GEN-MSG-005-008Verwijderen van een thread met ongelezen inhoud is toegestaan en verwijdert de thread uit de eigen ongelezenafleiding zonder de inhoud als gelezen voor andere deelnemers te markeren.
BR-UC-GEN-MSG-005-009Andere deelnemers behouden hun eigen zichtbaarheid, readstate en beantwoordbaarheid zolang hun eigen participantcontext dat toestaat.
BR-UC-GEN-MSG-005-010De verwijderactie mag geen mailbox-systeembericht naar andere deelnemers sturen, maar moet wel een thread-event ParticipantLeft toevoegen voor de bestaande threadtimeline.
BR-UC-GEN-MSG-005-011De verwijderactie moet vooraf door de gebruiker bevestigd worden.
BR-UC-GEN-MSG-005-012De mutatie aan de eigen participantregel en de herberekening of invalidatie van eigen tellerwaarden worden consistent verwerkt.
BR-UC-GEN-MSG-005-013Technische identifiers, stacktraces en interne foutdetails worden niet zichtbaar getoond bij foutpaden.
BR-UC-GEN-MSG-005-014Als alle deelnemers een thread uit hun eigen mailboxweergave hebben verwijderd, mag de thread administratief als gesloten of cleanup-kandidaat worden beschouwd, zonder dat deze gebruikersactie bestaande berichten hard verwijdert.
BR-UC-GEN-MSG-005-015Een latere nieuwe privécommunicatie met dezelfde gebruiker wordt via de normale opstel- of antwoordflow bepaald en mag niet vertrouwen op een door de gebruiker verwijderde mailboxweergave als actieve context.

Centrale business rules die hierbij horen:

BusinessRule-IDToepassing
BR-GEN-SEC-001Alle berichtacties vereisen server-side rol-, relatie- of objectcontrole.
BR-GEN-MSG-002Systeemberichten zijn niet-verwijderbaar door gebruikers.
BR-GEN-MSG-004Gelezen- en ongelezenstatus wordt gebruiker- of participantgebonden bepaald.
BR-GEN-MSG-003Verwijderen van een privéthread is participantgebonden en verwijdert de thread niet voor andere deelnemers.
BR-GEN-MSG-018Gebruikersverwijdering van een privéthread is geen hard delete van berichtinhoud.
BR-GEN-MSG-012Privéthreadweergaven mogen alleen berichten en thread-events uit dezelfde geautoriseerde thread tonen.

10. Datavalidatie

Veld / objectValidatie
ThreadreferentieMag nooit als autorisatiebewijs worden gebruikt; server-side objectcontrole is verplicht.
ObjecttypeMoet PrivateMessageThread zijn; SystemMessage is niet toegestaan voor verwijderen.
PrivateMessageThreads.IdMoet bestaan en gekoppeld zijn aan een participantregel voor de ingelogde gebruiker.
PrivateMessageThreadParticipants.ThreadIdMoet overeenkomen met de geselecteerde thread.
PrivateMessageThreadParticipants.UserIdMoet overeenkomen met de ingelogde gebruiker.
PrivateMessageThreadParticipants.DeletedAtUtcMoet leeg zijn voordat een actieve mailboxverwijdering wordt uitgevoerd.
PrivateMessageThreadParticipants.DeletedByUserId of actorcontextWordt gevuld met de uitvoerende gebruiker wanneer deze kolom of actorregistratie beschikbaar is.
DeletedAtUtcWordt opgeslagen in UTC.
ReadstateveldenWorden niet gebruikt als autorisatiebewijs en hoeven niet te worden overschreven om een thread te verwijderen.
OngelezenafleidingMoet verwijderde participantthreads uitsluiten.
Zoek- en filterdatasetMoet verwijderde participantthreads uitsluiten.
PopupKeyMoet bestaan in het popupregister en mag niet vanuit vrije gebruikersinput komen.
FoutmeldingenMogen geen technische identifiers, stacktraces of interne databasenaamgeving bevatten.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
1-2ReadPrivateMessageThreads, PrivateMessageThreadParticipantsOphalen van de geselecteerde threadcontext voor het tonen van de bevestigingspopup.
4-7ReadPrivateMessageThreads, PrivateMessageThreadParticipants, objectautorisatieControleren of de gebruiker de geselecteerde privéthread uit de eigen mailbox mag verwijderen.
8DatabasePrivateMessageThreadParticipantsDeletedAtUtc wordt gevuld voor de eigen participantregel; actorinformatie wordt vastgelegd waar het model dat ondersteunt.
9Database / readmodelparticipant-readstate/readmodelEigen mailbox-, filter- en ongelezenafleiding wordt opnieuw bepaald of geïnvalideerd.
10EventPrivateMessageThreadRemovedFromMailboxFunctionele gebeurtenis dat de thread voor één participant uit de mailboxweergave is verwijderd.
13EventMessageUnreadCountChangedEigen ongelezenteller kan opnieuw worden bepaald en naar de frontend worden gecommuniceerd.
ALT-010Event / loggingPrivateMessageThreadDeleteFailedVerwijderactie is technisch mislukt of transactioneel teruggedraaid.

12. Geen datamutaties

EntiteitReden
SystemMessagesSysteemberichten zijn niet-verwijderbaar door gebruikers.
PrivateMessagesBestaande berichtinhoud blijft intact en wordt niet hard verwijderd.
PrivateMessageThreadsDe threadcontainer blijft bestaan; alleen de eigen participantweergave wordt verwijderd.
PrivateMessageThreadParticipants van andere deelnemersAndere deelnemers behouden hun eigen mailboxweergave en readstate.
PrivateMessageThreadEventsEerdere thread-events blijven intact; de eerste geldige verlaat-/verwijderactie voegt een ParticipantLeft-event toe voor achterblijvende deelnemers.
UsersGebruikersgegevens worden alleen gebruikt voor autorisatie en displaycontext.
UserRelationshipsRelaties worden niet aangemaakt, gewijzigd of beëindigd.
SystemMessageTemplatesEr wordt geen systeembericht gegenereerd.
TicketsVerwijderen van een privéthread maakt geen melding of ticket aan.
RelationshipInvitationsVerwijderen van een privéthread verwerkt geen relatie-uitnodiging.

13. State diagram — participantgebonden mailboxzichtbaarheid

14. Decision flow — privéthread verwijderen

15. Data lifecycle diagram — eigen mailboxverwijdering

16. Sequence diagrammen

16.1 Privéthread verwijderen vanuit berichtenoverzicht

16.2 Privéthread verwijderen vanuit open bericht

16.3 Verwijdering geweigerd of mislukt

17. Popupverwijzingen

PopupKeyMomentVariantDoel
POP-GEN-MSG-DELETE-CONFIRMDirect nadat de gebruiker Gesprek verlaten kiest bij een privéthread.ConfirmBevestigen dat de gebruiker het gesprek wil verlaten en uit de eigen mailboxweergave wil verwijderen.
POP-GEN-MSG-NOT-AVAILABLEWanneer de te verwijderen privéthread niet bestaat, geen privéthread is, niet toegankelijk is of door retentie niet meer beschikbaar is.InfoOnlyDuidelijk maken dat het gesprek niet beschikbaar is zonder technische details prijs te geven.
POP-GEN-MSG-DELETEDNa succesvolle participantgebonden verwijdering of wanneer de eigen mailboxverwijdering al eerder succesvol is verwerkt.InfoOnlyTerugkoppelen dat de thread niet langer beschikbaar is in de eigen mailboxweergave.
POP-GEN-MSG-DELETE-FAILEDWanneer de verwijderactie technisch of transactioneel mislukt.InfoOnlyDuidelijk maken dat de verwijderactie niet is uitgevoerd.

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

DoeldocumentAfleiding
Functioneel OntwerpHet berichtenoverzicht en de open-berichtweergave moeten de verwijderactie alleen actief tonen voor privéthreads en nooit voor systeemberichten. De flow bevat een bevestigingsstap en werkt uitsluitend op de eigen mailboxweergave.
Functioneel OntwerpNa succesvol verwijderen verdwijnt de thread uit het eigen overzicht en worden filters, paginering, samenvattingskaarten en de ongelezenbadge opnieuw bepaald.
Functioneel OntwerpVanuit de detailweergave mag de gebruiker na verwijderen niet op een niet-zichtbare thread blijven staan; navigatie gaat terug naar het overzicht of een veilige berichtenroute.
Technisch OntwerpTechnisch Ontwerp: berichten, systeemberichten, notificaties en privéthreads verwerkt de verwijderactie als command en als command worden verwerkt met server-side authenticatie-, object- en participantcontrole.
Technisch OntwerpTechnisch Ontwerp: berichten, systeemberichten, notificaties en privéthreads beschrijft dat de mutatie wordt vastgelegd op de eigen PrivateMessageThreadParticipants-regel, bijvoorbeeld via DeletedAtUtc en actorinformatie, zonder PrivateMessages of andere participantregels te wijzigen.
Technisch OntwerpTechnisch Ontwerp: readmodels, tellers, badges, caching en materialisatie beschrijft dat mailboxqueries, zoekqueries, filters, paginering en ongelezenafleiding participantregels met mailboxverwijdering uitsluiten.
Technisch OntwerpTechnisch Ontwerp: berichten, systeemberichten, notificaties en privéthreads beschrijft dat de commandafhandeling idempotent of veilig omgaan met herhaalde deletecommands voor al verwijderde threads.
Software Requirements SpecificationDe gebruiker moet een privéberichtthread uit de eigen mailboxweergave kunnen verwijderen na expliciete bevestiging.
Software Requirements SpecificationHet systeem mag systeemberichten niet door gebruikers laten verwijderen.
Software Requirements SpecificationVerwijderen van een privéthread mag geen berichtinhoud of zichtbaarheid voor andere deelnemers verwijderen.
Software Requirements SpecificationDe eigen mailbox- en ongelezentellers moeten na verwijderen opnieuw correct worden weergegeven.

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-MSG-005-001SRS-MSG-003
AC-MSG-003
De verwijderactie alleen beschikbaar maken voor privéberichtthreads en niet voor systeemberichten
REQ-UC-GEN-MSG-005-002SRS-MSG-003
SRS-POP-001
AC-MSG-003
AC-POP-001
Vóór het verwijderen van een privéthread een bevestigingspopup tonen
REQ-UC-GEN-MSG-005-003SRS-AUTH-001
SRS-MSG-003
AC-AUTH-001
AC-MSG-003
Server-side controleren dat de ingelogde gebruiker participant is van de te verwijderen privéthread
REQ-UC-GEN-MSG-005-004SRS-MSG-003
AC-MSG-003
Verwijderen verwerken als participantgebonden mailboxverwijdering voor de ingelogde gebruiker
REQ-UC-GEN-MSG-005-005SRS-MSG-003
AC-MSG-003
Bij deze verwijderactie geen PrivateMessages-records hard verwijderen
REQ-UC-GEN-MSG-005-006SRS-MSG-003
AC-MSG-003
Participantregels, readstate en mailboxzichtbaarheid van andere deelnemers niet wijzigen bij verwijdering door één gebruiker
REQ-UC-GEN-MSG-005-007SRS-RDM-001
SRS-RDM-002
SRS-RDM-007
SRS-MSG-003
SRS-NFR-PER-001
AC-RDM-001
AC-RDM-002
AC-RDM-007
AC-MSG-003
AC-NFR-PER-001
Verwijderde privéthreads uitsluiten uit het eigen berichtenoverzicht, zoekresultaten, filters, paginering en samenvattingsaantallen
REQ-UC-GEN-MSG-005-008SRS-RDM-001
SRS-RDM-002
SRS-RDM-007
SRS-MSG-003
AC-RDM-001
AC-RDM-002
AC-RDM-007
AC-MSG-003
De eigen ongelezenbadge opnieuw bepalen nadat een privéthread uit de eigen mailbox is verwijderd
REQ-UC-GEN-MSG-005-009SRS-MSG-001
SRS-POP-001
AC-MSG-001
AC-POP-001
Bij annuleren van de bevestigingspopup geen datamutatie uitvoeren
REQ-UC-GEN-MSG-005-010SRS-MSG-003
SRS-GUA-001
SRS-NFR-SEC-001
AC-MSG-003
AC-GUA-001
AC-NFR-SEC-001
Veilig omgaan met herhaalde of verouderde verwijdercommands voor threads die al uit de eigen mailbox verwijderd zijn
REQ-UC-GEN-MSG-005-011SRS-MSG-003
SRS-SHR-004
SRS-SHR-007
SRS-NFR-LOG-001
AC-MSG-003
AC-SHR-004
AC-SHR-007
AC-NFR-LOG-001
Bij technische fout tijdens verwijderen geen gedeeltelijke mutatie bewaren
REQ-UC-GEN-MSG-005-012SRS-MSG-001
AC-MSG-001
Bij foutpaden geen technische identifiers, stacktraces of interne databasenaamgeving tonen aan de gebruiker
REQ-UC-GEN-MSG-005-013SRS-RDM-001
SRS-RDM-007
SRS-RDM-009
SRS-MSG-003
SRS-NFR-SEC-001
AC-RDM-001
AC-RDM-007
AC-RDM-009
AC-MSG-003
AC-NFR-SEC-001
Vanuit de open-berichtweergave na succesvolle verwijdering terugnavigeren naar een veilige berichtenroute of het berichtenoverzicht
REQ-UC-GEN-MSG-005-014SRS-MSG-003
SRS-NFR-AUD-001
AC-MSG-003
AC-NFR-AUD-001
De functionele gebeurtenis van participantgebonden mailboxverwijdering traceerbaar kunnen vastleggen

8.1 Alleen-overblijven en vervolgacties

Als een deelnemer het gesprek verlaat en daardoor een andere deelnemer alleen overblijft, blijft de historie voor die achterblijvende deelnemer zichtbaar zolang diens participantcontext zichtbaar is. De achterblijvende deelnemer kan binnen dit gesprek niet meer antwoorden en kan het onderwerp niet meer aanpassen. De UI toont dit vooraf met een vriendelijke toelichting en de server dwingt dezelfde regel af bij handmatige of stale requests.