UC-BEH-FP-004 — Recente beheerwijzigingen tonen
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-FP-004 |
| Naam | Recente beheerwijzigingen tonen |
| Domein | Beheerder / Frontpage en context |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Frontend, backend, database, autorisatiecomponent, readmodelqueries |
| Rolcontext | Actieve beheerdercontext; bij combinatierollen samengesteld volgens prioriteit Beheerder, Docent, Ouder/voogd |
| Betrokken schermen | Beheerder-frontpage, gezamenlijke frontpage bij combinatierollen, hoofdmenu |
| Gerelateerde usecases | UC-BEH-FP-001, UC-BEH-FP-003, UC-BEH-SITE-001, UC-BEH-SITE-002 |
| Primaire entiteiten | AdminAuditLog, ContentBlockHistory, CategoryHistory, ExerciseModuleHistory, SiteSettingHistory |
| Secundaire entiteiten / events | PopupHistory, SystemMessageTemplateHistory, SiteNotificationHistory, Users |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft het blok Recente beheerwijzigingen op de beheerder-frontpage. Het blok geeft een compacte chronologische selectie van centrale beheeracties, zodat beheerders direct zien welke relevante wijzigingen recent in de beheeromgeving zijn uitgevoerd.
Per regel worden minimaal de aard van de wijziging, een korte samenvatting, de uitvoerende gebruiker, datum, tijd en het functionele domein getoond. Relevante domeinen zijn onder meer Site instellingen, Categorieën beheren, Modules beheren, Frontpagebeheer, Popups beheren, Systeemberichten, Features en Docent ondersteuning.
Het blok is een samenvatting van bestaande historie- en auditbronnen. Het is geen zelfstandig mutatielog, geen vervanging van detailhistorie op de onderliggende beheerpagina’s en geen zoekfunctie door alle auditregels.
Uitgangspunten
- Alleen centrale beheeracties tellen mee; reguliere leerling-, docent- of gebruikersinteracties worden niet als beheerwijziging getoond.
- Vrije tekst uit redenvelden of interne details wordt samengevat en niet volledig uitgespreid op de frontpage.
- Historie blijft bronhoudend in het betreffende domein of een centrale auditlaag.
- De frontpage toont een beperkte selectie, standaard chronologisch aflopend.
3. Scope
Deze usecase beschrijft:
- Bepalen welke beheeracties meetellen als recente beheerwijziging.
- Tonen van chronologisch gesorteerde beheerwijzigingen.
- Tonen van actor, datum, tijd, domein, wijzigingstype en korte toelichting.
- Veilige weergave bij geanonimiseerde of inactieve uitvoerder.
- Afbakenen dat detailhistorie op onderliggende beheerpagina’s bronhoudend blijft.
Deze usecase beschrijft niet:
- Zoeken, filteren of exporteren van volledige beheerlogs.
- Wijzigen of verwijderen van auditrecords.
- Registreren van een nieuwe beheeractie door alleen kijken.
- Tonen van volledige technische payloads, stacktraces of gevoelige waarden.
- Meldingen- of ticketgeschiedenis als volledig auditdomein.
3.1 Afbakening met aangrenzende usecases
| Onderdeel | Afbakening |
|---|---|
| UC-BEH-FP-001 | Plaatst het blok op de beheerder-frontpage. |
| Onderliggende beheerpagina’s | Blijven bronhoudend voor volledige detailhistorie. |
| Beheerlogging | Volledige logging, zoeken en export vallen buiten dit frontpageblok. |
| Meldingenbeheer | Ticketgeschiedenis wordt niet als frontpagebeheerwijziging uitgespreid. |
| Accountbeheer | Actorweergave gebruikt accountdata, maar wijzigt geen account. |
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De beheerder-frontpage wordt geladen voor een geldige beheerdercontext. |
| PRE-002 | Er is minimaal één historie- of auditbron beschikbaar of het blok kan een lege staat tonen. |
| PRE-003 | Relevante beheerdomeinen leveren een wijzigingstype, actor en tijdstip. |
| PRE-004 | De applicatie kent een maximale hoeveelheid regels voor de frontpagesamenvatting. |
| PRE-005 | Persoonsweergave voor geanonimiseerde actoren is veilig gedefinieerd. |
| PRE-006 | Technische payloads worden niet rechtstreeks op de frontpage getoond. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet een compacte lijst recente beheerwijzigingen of een neutrale lege staat. |
| POST-002 | Geen audit- of historiebron is gewijzigd. |
| POST-003 | De getoonde regels verwijzen functioneel naar een beheerbaar domein. |
| POST-004 | Gevoelige technische details zijn niet getoond. |
| POST-005 | De selectie is consistent gesorteerd op wijzigingsmoment. |
| POST-006 | Onderliggende detailhistorie blijft bronhoudend. |
6. Trigger
De usecase start tijdens het laden van de beheerder-frontpage wanneer het blok Recente beheerwijzigingen wordt opgebouwd.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Frontend | Beheerder-frontpage | Vraagt recente beheerwijzigingen op. | De backend controleert beheerdercontext. | UC-BEH-FP-002. |
| 2 | Backend | Auditservice | Bepaalt relevante beheerdomeinen. | Alleen centrale beheeracties worden meegenomen. | Site instellingen, Categorieën, Modules, Docent ondersteuning. |
| 3 | Backend | Auditservice | Leest recente historie- en auditrecords. | Records worden per domein genormaliseerd naar één frontpageweergave. | AdminAuditLog of domeinhistorie. |
| 4 | Backend | Datamapping | Bepaalt wijzigingstype en domeinlabel. | Technische actiontypes worden vertaald naar functionele labels. | Geen vrije technische codes in UI. |
| 5 | Backend | Datamapping | Bepaalt actorweergave. | Actieve gebruiker wordt met naam weergegeven; geanonimiseerde actor veilig als geanonimiseerde gebruiker. | Users of actorsnapshot. |
| 6 | Backend | Datamapping | Bepaalt korte samenvatting. | Alleen compacte, veilige toelichting wordt opgenomen. | Geen volledige payload of gevoelige waarde. |
| 7 | Backend | Sortering | Sorteert regels aflopend op wijzigingsmoment. | Meest recente beheerwijziging staat bovenaan. | UTC naar lokale weergave in UI. |
| 8 | Backend | Begrenzing | Past maximale hoeveelheid frontpageregels toe. | De lijst blijft compact en frontpagegeschikt. | Volledige historie via onderliggende pagina. |
| 9 | Backend | Frontend | Levert readmodel. | Frontend ontvangt regels of lege staat. | Read-only. |
| 10 | Frontend | Recente beheerwijzigingen | Toont regels. | Beheerder ziet wijziging, samenvatting, actor, datum, tijd en domein. | Geen mutatie. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 3 | Er zijn geen beheerwijzigingen beschikbaar. | Het blok toont een neutrale lege staat. | Niet van toepassing. | Geen. |
| ALT-002 | 3 | Een auditbron is tijdelijk niet beschikbaar. | De backend toont beschikbare bronnen en markeert het blok of een deel als tijdelijk niet beschikbaar. | Inline melding. | Geen. |
| ALT-003 | 5 | De uitvoerende gebruiker is geanonimiseerd. | De regel toont een veilige geanonimiseerde actorweergave of actorsnapshot zonder persoonsgegevens. | Niet van toepassing. | Geen. |
| ALT-004 | 6 | De wijziging bevat gevoelige oude of nieuwe waarden. | De frontpage toont alleen een samenvatting; volledige details blijven beperkt tot bevoegde detailhistorie indien toegestaan. | Niet van toepassing. | Geen. |
| ALT-005 | 6 | De wijziging komt uit een domein zonder geschikte samenvatting. | De regel toont het domein en wijzigingstype met generieke veilige samenvatting. | Niet van toepassing. | Geen. |
| ALT-006 | 7 | Meerdere wijzigingen hebben hetzelfde tijdstip. | Het systeem gebruikt een stabiele secundaire sortering, bijvoorbeeld audit-id aflopend. | Niet van toepassing. | Geen. |
| ALT-007 | 8 | Er zijn meer wijzigingen dan de frontpagelimiet. | Alleen de meest recente regels worden getoond; detailhistorie blijft via de beheerpagina beschikbaar. | Niet van toepassing. | Geen. |
| ALT-008 | 10 | De beheerder klikt door naar een beheerpagina. | De onderliggende route voert eigen autorisatie uit; de frontpage draagt geen mutatierecht over. | Afhankelijk van doelpagina. | Geen vanuit deze usecase. |
9. Business rules
| ID | Regel |
|---|---|
| BR-UC-BEH-FP-004-001 | Recente beheerwijzigingen tonen alleen centrale beheeracties, geen reguliere oefen-, berichten- of sessieactiviteiten. |
| BR-UC-BEH-FP-004-002 | Per regel zijn minimaal wijzigingstype, korte samenvatting, actor, datum, tijd en functioneel domein zichtbaar. |
| BR-UC-BEH-FP-004-003 | De sortering is chronologisch aflopend op wijzigingsmoment. |
| BR-UC-BEH-FP-004-004 | De frontpage toont een beperkte lijst; volledige geschiedenis blijft op onderliggende beheerpagina’s. |
| BR-UC-BEH-FP-004-005 | Gevoelige oude en nieuwe waarden worden niet volledig op de frontpage getoond. |
| BR-UC-BEH-FP-004-006 | Geanonimiseerde actoren worden zonder actuele persoonsgegevens weergegeven. |
| BR-UC-BEH-FP-004-007 | Een beheerwijziging wordt niet opnieuw als auditactie geregistreerd doordat zij op de frontpage wordt bekeken. |
| BR-UC-BEH-FP-004-008 | Domeinlabels moeten aansluiten op de beheerstructuur, zoals Site instellingen, Categorieën beheren, Modules beheren en Docent ondersteuning. |
| BR-UC-BEH-FP-004-009 | Het blok mag niet worden gebruikt als zoek- of exportfunctie voor beheerlogging. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| Auditrecord | Moet wijzigingstype, actor of actorsnapshot, tijdstip en brondomein bevatten. |
| Domeinlabel | Moet vertaalbaar zijn naar een beheerbaar functioneel domein. |
| Actor | Actieve actor mag met naam worden getoond; geanonimiseerde actor gebruikt veilige snapshotweergave. |
| Samenvatting | Mag geen wachtwoorden, tokens, secrets, raw payloads of stacktraces bevatten. |
| Tijdstip | Opslag in UTC, weergave in lokale gebruikerweergave. |
| Sortering | Aflopend op ChangedAtUtc of auditmoment; stabiele volgorde bij gelijke timestamps. |
| Limiet | Aantal frontpageregels moet begrensd zijn. |
| Detailroute | Doorklikroute voert eigen autorisatie uit. |
10.1 Autorisatie en server-side controles
| Controle | Uitwerking |
|---|---|
| Accountstatus | Controleer dat het interne account actief is voordat beheerdata wordt geladen. |
| Rolstatus | Controleer dat de beheerderrol actief is op het moment van het verzoek. |
| Clientstate | Gebruik browserstate uitsluitend als UI-hint en nooit als autorisatiebron. |
| Directe URL | Voer dezelfde controle uit bij directe routes als bij navigatie via menu of tegel. |
| Veilige response | Geef bij blokkade geen beheerdata, technische sleutels of querydetails terug. |
| Auditnormalisatie | Normaliseer domeinhistorie naar wijzigingstype, actor, datum, tijd, samenvatting en domein. |
| Privacyfilter | Verwijder gevoelige waarden uit frontpageweergave. |
| Limiet | Pas een vaste maximale hoeveelheid frontpageregels toe. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1-10 | Database | Niet van toepassing | Het tonen van recente beheerwijzigingen leest audit- en historiebronnen. |
| 1-10 | Event | Niet van toepassing | Er wordt geen event gepubliceerd door weergave. |
| 1-10 | Audit | Niet van toepassing | Lezen van de frontpage registreert geen nieuwe beheerwijziging. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| AdminAuditLog en domeinhistorie | Auditrecords worden niet aangepast. |
| ContentBlocks, Categories, ExerciseModules en SiteSettings | Er wordt geen beheerobject gewijzigd. |
| Users | Actorweergave wijzigt geen accountgegevens. |
| Tickets | Ticketgeschiedenis wordt niet behandeld binnen dit frontpageblok. |
| SystemMessageTemplates en PopupDefinitions | Wijzigingen worden hoogstens samengevat, niet aangepast. |
13. State diagram
Niet van toepassing. Deze usecase wijzigt geen persistente domeinstatus, workflowstatus of lifecycle-status. De flow bestaat uit server-side contextcontrole, readmodelopbouw en veilige weergave-afhandeling.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
Recente beheerwijzigingen laden
Geanonimiseerde actor weergeven
17. Popupverwijzingen
Deze usecase gebruikt geen popupregister-popup. Eventuele fout- of blokkademeldingen worden als inline melding, veilige redirect of statusweergave afgehandeld.
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Geen bevestigings- of invoerpopup in deze usecase. | Niet van toepassing. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft het frontpageblok Recente beheerwijzigingen met minimale velden, domeinlabels, sortering en het onderscheid tussen frontpagesamenvatting en detailhistorie. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, readmodels en beheersamenvattingen en frontendcompositie beschrijven de technische uitwerking. Beschrijft hoe verschillende historiebronnen worden genormaliseerd naar één readmodel, inclusief actorweergave, privacyfiltering, tijdzoneweergave en limiet. |
| Software Requirements Specification | Neem eisen op voor minimale velden, veilige samenvatting, uitsluiting van gevoelige data, chronologische sortering en read-only gedrag. |
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-BEH-FP-004-001 | SRS-ADM-001 AC-ADM-001 | Op de beheerder-frontpage een blok Recente beheerwijzigingen kunnen tonen |
REQ-UC-BEH-FP-004-002 | SRS-RDM-001 SRS-RDM-002 SRS-RDM-004 SRS-ADM-001 AC-RDM-001 AC-RDM-002 AC-RDM-004 AC-ADM-001 | Per recente beheerwijziging minimaal wijzigingstype, korte samenvatting, actor, datum, tijd en domein tonen |
REQ-UC-BEH-FP-004-003 | SRS-RDM-001 SRS-RDM-004 SRS-ADM-001 AC-RDM-001 AC-RDM-004 AC-ADM-001 | Recente beheerwijzigingen aflopend op wijzigingsmoment sorteren |
REQ-UC-BEH-FP-004-004 | SRS-RDM-001 SRS-RDM-002 SRS-RDM-003 SRS-ADM-001 AC-RDM-001 AC-RDM-002 AC-RDM-003 AC-ADM-001 | De frontpagelijst begrenzen tot een compact aantal regels |
REQ-UC-BEH-FP-004-005 | SRS-ADM-001 SRS-NFR-SEC-001 AC-ADM-001 AC-NFR-SEC-001 | Geen gevoelige technische payloads of secrets tonen in het frontpageblok |
REQ-UC-BEH-FP-004-006 | SRS-ADM-003 SRS-ADM-001 SRS-NFR-PRV-001 AC-ADM-003 AC-ADM-001 AC-NFR-PRV-001 | Geanonimiseerde actoren zonder actuele persoonsgegevens weergeven |
REQ-UC-BEH-FP-004-007 | SRS-ADM-001 SRS-NFR-AUD-001 AC-ADM-001 AC-NFR-AUD-001 | Het bekijken van recente beheerwijzigingen zonder auditmutatie verwerken |
REQ-UC-BEH-FP-004-008 | SRS-RDM-001 SRS-RDM-004 SRS-ADM-001 AC-RDM-001 AC-RDM-004 AC-ADM-001 | Volledige detailhistorie bronhoudend laten op onderliggende beheerpagina’s |
REQ-UC-BEH-FP-004-009 | SRS-CAT-001 SRS-TCH-002 SRS-ADM-004 SRS-ADM-001 SRS-MOD-003 AC-CAT-001 AC-TCH-002 AC-ADM-004 AC-ADM-001 AC-MOD-003 | Relevante domeinen zoals Site instellingen, Categorieën beheren, Modules beheren en Docent ondersteuning kunnen labelen |