UC-BEH-POP-001 — Popupoverzicht bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-POP-001 |
| Naam | Popupoverzicht bekijken |
| Domein | Beheerder / Popupbeheer |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Frontend, backend, autorisatiecomponent, database |
| Rolcontext | Actieve beheerdercontext; combinatierollen geven geen extra rechten binnen popupbeheer |
| Betrokken schermen | Site Instellingen > Popups beheren |
| Gerelateerde usecases | UC-BEH-POP-002, UC-BEH-POP-005, generieke usecases met PopupKey-verwijzingen |
| Primaire entiteiten | PopupDetails, PopupDetailsHistory |
| Secundaire entiteiten / events | PopupType, PopupVariant, PopupInputType, ButtonTheme, Users, popup-register, popup-themes |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
De beheerder opent het popupoverzicht met bestaande popuprecords. Het systeem toont alleen records die al door code en database-migraties bekend zijn en ondersteunt zoeken of filteren op technische sleutel, domein, titel en tekst.
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:
- Openen van het overzicht Popups beheren.
- Server-side controleren dat de gebruiker beheerder is.
- Tonen van bestaande popuprecords met technische sleutel, domein, variant, theme, titel en korte tekstpreview.
- Zoeken en filteren binnen de bestaande dataset.
- Tonen welke records detail- of geschiedenisacties ondersteunen.
- Veilige lege-staat- en toegang-geweigerdafhandeling.
Deze usecase beschrijft niet:
- Nieuwe popuprecords aanmaken via de GUI.
- Popuprecords verwijderen of deactiveren via de GUI.
PopupKey,Variant,ThemeKey, knopacties ofCustomRendererKeywijzigen.- 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
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is ingelogd en heeft een actief intern OefenHub-account. |
| PRE-002 | De gebruiker heeft server-side een actieve beheerderrol. |
| PRE-003 | De route of actie ligt binnen Site Instellingen > Popups beheren. |
| PRE-004 | De frontend gebruikt actuele serverrespons en vertrouwt niet op oude clientstate. |
| PRE-005 | Popupregister en popup-themes zijn als bronafspraak beschikbaar voor interpretatie van popuprecords. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet het popupoverzicht of een veilige blokkade. |
| POST-002 | Alle getoonde records zijn bestaande popuprecords. |
| POST-003 | Technische velden zijn zichtbaar als read-only metadata waar functioneel relevant. |
| POST-004 | Er is geen popuprecord, historyrecord of runtimegebruikersdata gewijzigd. |
6. Trigger
De beheerder opent Site Instellingen > Popups beheren.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Beheerder | Site Instellingen | Kiest Popups beheren. | Frontend vraagt het overzicht op. | Server-side autorisatie verplicht. |
| 2 | Backend | Autorisatiecomponent | Controleert account en beheerderrol. | Alleen actieve beheerdercontext krijgt toegang. | Users, Roles, UserRoles. |
| 3 | Backend | Popupservice | Laadt bestaande popuprecords. | Nieuwe of onbekende sleutels worden niet geconstrueerd. | PopupDetails. |
| 4 | Backend | Readmodel | Bepaalt standaardsortering, filteropties en previewvelden. | Overzicht bevat technische metadata en beheerbare samenvatting. | Readmodel. |
| 5 | Frontend | Overzicht | Rendert lijst, zoekveld en filtermogelijkheden. | Beheerder ziet bestaande records of veilige lege staat. | Geen mutatie. |
| 6 | Beheerder | Overzicht | Zoekt of filtert. | Backend levert gefilterde dataset. | Read-only query. |
| 7 | Frontend | Overzicht | Toont acties Open detail en Geschiedenis waar beschikbaar. | Vervolgacties starten aparte usecases. | UC-BEH-POP-002, UC-BEH-POP-005. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Geen actieve beheerderrol. | Backend blokkeert beheerdata. | Inline toegang geweigerd of veilige redirect. | Geen. |
| ALT-002 | 3 | Er zijn geen popuprecords beschikbaar. | Het overzicht toont een neutrale lege staat. | Niet van toepassing. | Geen. |
| ALT-003 | 3 | Databasequery faalt. | Het systeem toont een veilige foutmelding zonder interne details. | Inline foutmelding. | Geen. |
| ALT-004 | 6 | Zoekopdracht levert geen resultaten op. | Het overzicht toont een lege resultaatstaat met behoud van zoekcontext. | Niet van toepassing. | Geen. |
| ALT-005 | 6 | Zoekwaarde bevat onveilige invoer. | De backend behandelt invoer als zoektekst en voert geen actieve inhoud uit. | Inline validatie waar nodig. | Geen. |
9. Business rules
| ID | Regel |
|---|---|
| BR-UC-BEH-POP-001-001 | Het overzicht toont uitsluitend bestaande popuprecords. |
| BR-UC-BEH-POP-001-002 | Zoeken, filteren en sorteren wijzigen geen popupdata. |
| BR-UC-BEH-POP-001-003 | Het overzicht mag geen nieuwe popupdefinitie aanmaken, activeren of verwijderen. |
| BR-UC-BEH-POP-001-004 | Technische sleutels en codegedreven velden worden herkenbaar als read-only metadata behandeld. |
| BR-UC-BEH-POP-001-005 | Popupbeheer blijft gekoppeld aan het centrale popupregister en popup-themes. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| Beheerdercontext | Server-side actieve beheerderrol verplicht. |
| Popuprecord | Het record moet bestaan en als bestaand popuprecord bekend zijn. |
| PopupKey | Moet bestaan en blijft read-only. |
| Variant | Moet een bekende PopupVariant zijn en blijft read-only. |
| ThemeKey | Blijft read-only en moet verwijzen naar een bestaande themedefinitie. |
| Knopacties | ActionCallMethod en technische actie-identifiers zijn read-only. |
| CustomRendererKey | Alleen relevant bij Custom-popups en blijft read-only. |
| Titel | Maximaal 50 tekens wanneer beheerbaar. |
| Tekst | Maximaal 1000 tekens wanneer beheerbaar. |
| Knoptekst | Maximaal 20 tekens per zichtbare knop wanneer beheerbaar. |
| Inputlabel | Alleen beheerbaar wanneer de bestaande variant een inputveld ondersteunt. |
| Rendering | Beheerbare tekst mag geen actieve of onveilige inhoud veroorzaken. |
| Tijdstip | Wijzigingsmomenten worden in UTC vastgelegd. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| Alle stappen | Database | Niet van toepassing | Deze usecase is read-only en wijzigt geen popuprecords of historyrecords. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| PopupDetails | Alleen gelezen; de usecase wijzigt geen popuprecord. |
| PopupDetailsHistory en PopupDetailsHistoryItems | Alleen gelezen wanneer geschiedenisindicaties of historydetails nodig zijn. |
| Users, Roles en UserRoles | Alleen gebruikt voor autorisatiecontrole. |
| PopupKey, Variant, ThemeKey, ActionCallMethod en CustomRendererKey | Technische ankers blijven read-only en codegedreven. |
| Popupregister en popup-themes | Ontwerpbronnen blijven bronhoudend en worden niet door de beheer-UI gewijzigd. |
| Runtime gebruikersdata | Leerling-, docent-, ouder-/voogddata, oefenruns, meldingen, relaties en berichten worden niet gewijzigd. |
13. State diagram
Deze usecase heeft geen persistent state diagram. Het openen, zoeken en filteren van het popupoverzicht is read-only readmodelgedrag.
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.
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Geen bevestigings- of invoerpopup in de normale processtroom. | Inline meldingen, lege staten of veilige redirects volstaan. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft welke popupvelden beheerbaar zijn, welke velden read-only blijven en hoe de beheerder bestaande popuprecords raadpleegt of wijzigt. |
| Technisch Ontwerp | Technisch Ontwerp: domeinmodel en admin-eigenaarschap, databaseontwerp en frontendcompositie beschrijven de technische uitwerking. Beschrijf server-side autorisatie, readmodelopbouw en geen command- of eventregisteruitbreiding voor read-only raadpleegacties, inclusief bescherming van technische sleutels en codegedreven velden. |
| Software Requirements Specificatie | Beschrijft requirements voor toegangscontrole, validatiegrenzen, veilige foutafhandeling, immutable history en de scheiding tussen beheerbare tekst en technische popupdefinities. |
| Database-informatie | Controleer aansluiting van PopupDetails, PopupDetailsHistory en PopupDetailsHistoryItems, inclusief veldlengtes, concurrency en auditvelden. |
| Ontwerpbronnen en registers | Houd 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-afleiding | Dekt | Usecasecontext |
|---|---|---|
REQ-UC-BEH-POP-001-001 | SRS-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-001-002 | SRS-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-001-003 | SRS-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-001-004 | SRS-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-001-005 | SRS-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-001-006 | SRS-ADM-002 SRS-ADM-001 SRS-POP-001 SRS-NFR-AUD-001 AC-ADM-002 AC-ADM-001 AC-POP-001 AC-NFR-AUD-001 | Deze raadpleeg- of controleflow uitvoeren zonder PopupDetails of historyrecords te wijzigen |
REQ-UC-BEH-POP-001-007 | SRS-RDM-001 SRS-ADM-001 AC-RDM-001 AC-ADM-001 | Zoek-, filter-, selectie- en detailacties behandelen als read-only readmodelgedrag |
REQ-UC-BEH-POP-001-009 | SRS-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-001-010 | SRS-RDM-001 SRS-RDM-004 SRS-ADM-001 SRS-POP-001 AC-RDM-001 AC-RDM-004 AC-ADM-001 AC-POP-001 | De usecase Popupoverzicht bekijken uitvoeren binnen de afbakening van Beheerder / Popupbeheer |