UC-BEH-ACC-010 — Accountgeschiedenis en lifecyclelog bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-ACC-010 |
| Naam | Accountgeschiedenis en lifecyclelog bekijken |
| Domein | Beheerder / Accountbeheer |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Frontend, backend, database, autorisatiecomponent, identity-providerkoppeling, accountlogkanaal |
| Rolcontext | Actieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Accounts beheren > Accountdetail > Geschiedenis |
| Gerelateerde usecases | UC-BEH-ACC-001, UC-BEH-ACC-002, UC-BEH-ACC-003, UC-BEH-ACC-004, UC-BEH-ACC-005, UC-BEH-ACC-006, UC-BEH-ACC-007, UC-BEH-ACC-008, UC-BEH-ACC-009, UC-GEN-ACC-001, UC-GEN-ACC-002, UC-GEN-ACC-005 |
| Primaire entiteiten | Users, Roles, UserRoles, UserSettings, ProfileAvatars, accountlogkanaal |
| Secundaire entiteiten / events | UserRelationships, RelationshipInvitations, TeacherLevels, TeacherLevelAuthorizations, LevelCollaborators, ExerciseRuns, LiveViewAudit, SystemMessages, PrivateMessageThreads, Tickets |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
De usecase beschrijft hoe een beheerder accountgeschiedenis en lifecyclelog raadpleegt. Deze weergave combineert functionele accountmutaties zoals rolwijzigingen, deactiveren, heractiveren, instellingenwijzigingen en anonimisering met afgeschermde accountlogregels waar dat functioneel nodig is.
De geschiedenis is bedoeld voor audit, support en reconstructie. Zij toont geen wachtwoorden, tokens, secrets of credentialstatus en mag gevoelige oude identiteit alleen tonen binnen afgeschermde beheer- of technische context die daarvoor bedoeld is.
De weergave is read-only. Logregels worden door andere lifecycle- en beheeracties geschreven; deze usecase schrijft geen nieuwe logregels voor het raadplegen zelf.
Uitgangspunten
- Accountlifecycleacties worden in een afgeschermd accountlogkanaal vastgelegd.
- UserRoles bevat auditvelden voor roltoekenning en intrekking.
- UserSettings-wijzigingen door beheerder worden met oude en nieuwe waarde gelogd.
- Anonimisering logt oude en nieuwe identiteit afgeschermd.
- De geschiedenisweergave is read-only.
3. Scope
Deze usecase beschrijft:
- Tonen van rolgeschiedenis uit UserRoles.
- Tonen van accountstatus- en lifecycleacties uit accountlogkanaal.
- Tonen van beheerderwijzigingen van UserSettings.
- Filteren op type gebeurtenis en periode.
- Veilig maskeren van gevoelige oude identiteit waar nodig.
- Afbakening van credentialgegevens buiten OefenHub.
Deze usecase beschrijft niet:
- Wachtwoorden, tokens, secrets, identity-provider-sessies of credentialstatus beheren.
- Een Keycloak- of identity-provideraccount rechtstreeks wijzigen of verwijderen.
- Vrij relatiebeheer tussen gebruikers uitvoeren; relatieflows blijven bronhoudend in het relatiedomein.
- Profielwijzigingen als selfservice-gebruikersflow dupliceren; eigen profielbeheer blijft bronhoudend in generiek/profiel.
- Popupteksten, knopteksten of inputlabels specificeren; usecases verwijzen uitsluitend naar PopupKey.
- Logregels wijzigen, verwijderen of corrigeren.
- Technische stacktraces of secrets tonen.
- Volledige domeinhistorie van relaties, tickets of oefeningen in accountgeschiedenis opnemen.
- Auditrapportages genereren; deze usecase beperkt zich tot raadpleging van accountgeschiedenis en lifecyclelog.
3.1 Afbakening met aangrenzende domeinen
| Onderdeel | Afbakening |
|---|---|
| Generiek / Account | Login, provisioning, logout en selfservice-accountverwijdering blijven bronhoudend in het generieke accountdomein. |
| Generiek / Profiel en voorkeuren | Eigen profiel- en voorkeurenbeheer blijft gebruikergericht; accountbeheer bevat alleen beheerdercorrecties en uitzonderingsacties. |
| Generiek / Relaties | Relatie-uitnodigingen, acceptatie en normale ontkoppeling blijven in het relatiedomein; accountbeheer kan wel afhankelijke toegang beëindigen bij lifecycle-acties. |
| Beheerder / Docentondersteuning | Docentstructuur, leerlingtoegang en collaborators worden daar supportmatig beheerd; accountbeheer ziet accountbrede identiteit, rollen en lifecycle. |
| Identity provider | Authenticatie, wachtwoorden, verificatie, tokens en credentials blijven buiten OefenHub-accountbeheer. |
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol ingelogd in OefenHub. |
| PRE-002 | De backend heeft server-side vastgesteld dat de gebruiker een actieve beheerderrol heeft. |
| PRE-003 | De beheerder bevindt zich binnen Accounts beheren of een onderliggende accountbeheerroute. |
| PRE-004 | Clientstate, routeparameters of verborgen formuliervelden bepalen nooit welk account gewijzigd mag worden. |
| PRE-005 | De identity provider blijft bronhouder voor authenticatie, wachtwoorden, tokens, sessies en credential lifecycle. |
| PRE-006 | De beheerder heeft accountdetail geopend. |
| PRE-007 | Het doelaccount bestaat of is als geanonimiseerd historisch account raadpleegbaar. |
| PRE-008 | De accountlogbron is beschikbaar of veilig niet-beschikbaar. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet accountgeschiedenis en lifecyclelog binnen toegestane grenzen. |
| POST-002 | Geen logregel of accountdata is gewijzigd. |
| POST-003 | Gevoelige credentialinformatie is niet getoond. |
| POST-004 | Afgeschermde oude identiteit wordt alleen getoond wanneer de beheercontext dit toestaat. |
| POST-005 | Filters wijzigen alleen de weergave. |
6. Trigger
De usecase start wanneer de beheerder in accountdetail de tab Geschiedenis of Lifecyclelog opent.
7. Normale processtroom
| Stap | Actor | Component / context | Actie | Resultaat | Data / controle |
|---|---|---|---|---|---|
| 1 | Beheerder | Accountdetail | Opent Geschiedenis. | De frontend vraagt accountgeschiedenis op. | Users.Id. |
| 2 | Backend | Autorisatiecomponent | Controleert beheerdercontext. | Alleen beheerder mag accountgeschiedenis raadplegen. | Server-side controle. |
| 3 | Backend | HistoryService | Laadt rolgeschiedenis. | Roltoekenning en intrekking worden toegevoegd. | UserRoles. |
| 4 | Backend | AccountlogService | Laadt accountlifecyclelog. | Deactiveren, heractiveren, anonimisering en instellingenwijzigingen worden toegevoegd. | Afgeschermd accountlogkanaal. |
| 5 | Backend | HistoryService | Maskert gevoelige waarden. | Wachtwoorden, tokens en secrets ontbreken volledig; oude identiteit wordt afgeschermd. | Privacyfilter. |
| 6 | Frontend | Geschiedenisweergave | Toont tijdlijn, filters en details. | De beheerder kan filteren en detailregels openen. | Read-only tijdlijn. |
8. Alternatieve en exceptionele processtromen
| Stap | Situatie | Afhandeling | PopupKey | Datagevolg |
|---|---|---|---|---|
| 2 | Actor is geen beheerder. | De toegang wordt geweigerd. | Niet van toepassing. | Geen. |
| 3 | Rolgeschiedenis ontbreekt. | De weergave toont overige logregels en markeert rolhistorie als niet beschikbaar. | Niet van toepassing. | Geen. |
| 4 | Accountlogbron is niet beschikbaar. | De pagina toont veilige foutmelding zonder te suggereren dat geen acties bestaan. | Niet van toepassing. | Geen. |
| 5 | Logregel bevat gevoelige oude identiteit. | De waarde wordt gemaskeerd of alleen in afgeschermde technische context getoond. | Niet van toepassing. | Geen. |
| 6 | Filter levert geen resultaten. | De pagina toont een lege gefilterde staat. | Niet van toepassing. | Geen. |
9. Business rules
| ID | Business rule |
|---|---|
| BR-001 | Accountgeschiedenis is read-only. |
| BR-002 | Credentialgegevens worden nooit getoond. |
| BR-003 | Anonimisering kan oude en nieuwe identiteit afgeschermd loggen, maar normale UI toont geen persoonsgegevens van geanonimiseerde accounts. |
| BR-004 | Rolgeschiedenis komt uit UserRoles-auditvelden. |
| BR-005 | Lifecycleacties komen uit accountlogkanaal. |
| BR-006 | Filters wijzigen geen logdata. |
| BR-007 | Louter raadplegen schrijft geen nieuwe accountlogregel. |
10. Datavalidatie
| ID | Validatie |
|---|---|
| VAL-001 | Users.Id of historische accountreferentie moet bestaan. |
| VAL-002 | Actor moet beheerder zijn. |
| VAL-003 | Filterwaarden voor periode en type moeten begrensd zijn. |
| VAL-004 | Logdetails mogen geen wachtwoorden, tokens, secrets of credentialstatus bevatten. |
| VAL-005 | Maskeringsregels worden server-side toegepast. |
| VAL-006 | Paginering voorkomt onbeperkte loguitvoer. |
11. Datamutaties en events
| Onderdeel | Mutatie / event |
|---|---|
| Geen domeinmutatie | Geschiedenis raadplegen wijzigt geen accountdata. |
| Geen lifecycle-event | Raadplegen schrijft geen lifecyclelogregel of domeinevent. |
12. Geen datamutaties
| Object / gegeven | Niet wijzigen |
|---|---|
| Users | Geen accountvelden wijzigen. |
| UserRoles | Geen rolhistorie aanpassen. |
| UserSettings | Geen instelling wijzigen. |
| Accountlogkanaal | Geen logregel wijzigen of verwijderen. |
| Identity provider | Geen credentialinformatie lezen of wijzigen. |
13. State diagram
Niet van toepassing. Deze usecase wijzigt geen persistente domeinstatus. De weergegeven toestand is een read-only scherm- of readmodeltoestand en wordt daarom niet als statusmodel opgenomen.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
Niet van toepassing
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Document | Afleiding |
|---|---|
| Functioneel Ontwerp | Accountbeheer bevat raadpleegbare geschiedenis en lifecyclelog voor audit en support. |
| Technisch Ontwerp | Technisch Ontwerp: identiteit en accountlifecycle, autorisatie, logging en foutafhandeling en privacy en anonimisering beschrijven de technische uitwerking. HistoryService combineert UserRoles, UserSettings-beheerlog en accountlogkanaal met server-side maskering. |
| Software Requirements Specification | SRS moet read-only karakter, masking en uitsluiting van credentials vastleggen. |
| Database | Leest UserRoles-auditvelden en accountlogkanaal; geen mutatie. |
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 |
|---|---|---|
UC-BEH-ACC-010-REQ-001 | SRS-ACC-002 SRS-ADM-002 SRS-ADM-001 SRS-NFR-AUD-001 AC-ACC-002 AC-ADM-002 AC-ADM-001 AC-NFR-AUD-001 | Een beheerder accountgeschiedenis kunnen tonen |
UC-BEH-ACC-010-REQ-002 | SRS-ADM-002 SRS-ADM-001 SRS-NFR-AUD-001 AC-ADM-002 AC-ADM-001 AC-NFR-AUD-001 | Rolgeschiedenis uit UserRoles kunnen tonen |
UC-BEH-ACC-010-REQ-003 | SRS-ACC-002 SRS-ADM-002 SRS-ADM-001 AC-ACC-002 AC-ADM-002 AC-ADM-001 | Lifecycleacties uit een accountlogkanaal kunnen tonen |
UC-BEH-ACC-010-REQ-004 | SRS-ADM-001 AC-ADM-001 | Gevoelige oude identiteit maskeren volgens beheercontext |
UC-BEH-ACC-010-REQ-005 | SRS-ADM-001 SRS-NFR-SEC-001 SRS-NFR-PRV-001 SRS-ARCH-002 AC-ADM-001 AC-NFR-SEC-001 AC-NFR-PRV-001 AC-ARCH-002 | Geen wachtwoorden, tokens, secrets of credentialstatus tonen |
UC-BEH-ACC-010-REQ-006 | SRS-ADM-001 SRS-NFR-AUD-001 AC-ADM-001 AC-NFR-AUD-001 | Geschiedenis read-only houden |
UC-BEH-ACC-010-REQ-007 | SRS-RDM-001 SRS-RDM-006 SRS-ADM-001 SRS-NFR-AUD-001 AC-RDM-001 AC-RDM-006 AC-ADM-001 AC-NFR-AUD-001 | Geschiedenis kunnen filteren en pagineren zonder datamutatie |