Skip to main content

UC-BEH-ACC-001 — Accountoverzicht bekijken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-ACC-001
NaamAccountoverzicht bekijken
DomeinBeheerder / Accountbeheer
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, database, autorisatiecomponent, identity-providerkoppeling, presence/readmodelcomponent
RolcontextActieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenAccounts beheren
Gerelateerde usecasesUC-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-BEH-ACC-010, UC-GEN-ACC-001, UC-GEN-ACC-002, UC-GEN-ACC-005
Primaire entiteitenUsers, Roles, UserRoles, UserSettings, ProfileAvatars
Secundaire entiteiten / eventsUserRelationships, RelationshipInvitations, TeacherLevels, TeacherLevelAuthorizations, LevelCollaborators, ExerciseRuns, LiveViewAudit, SystemMessages, PrivateMessageThreads, Tickets
Gerelateerde popupsNiet van toepassing
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

De usecase beschrijft hoe een beheerder het accountoverzicht opent. Het overzicht is bedoeld om gebruikers vindbaar te maken op basis van functionele accountgegevens, rolcontext en status, zonder credentials of identity-providerdetails te tonen.

Per account worden minimaal weergavenaam, e-mailadres, actieve rollen, actieve status, laatste activiteit en een online-indicatie getoond. De online-indicatie is een afgeleide actuele applicatiewaarde en geen bewijs van een blijvende sessie in de database.

Het overzicht is een selectie- en oriëntatiepagina. Wijzigingen aan rollen, status, instellingen of lifecycle worden pas uitgevoerd vanuit accountdetail of een daarvoor bedoelde vervolgflow.

Uitgangspunten

  • Het accountoverzicht gebruikt Users, UserRoles, Roles en UserSettings als functionele bron.
  • Identity-providergegevens worden alleen gebruikt voor authenticatiecontext en worden niet als credentialdetail getoond.
  • Zoeken en filteren gebeurt server-side binnen de geautoriseerde beheercontext.
  • Online-status is afgeleid en wordt niet gebruikt als autorisatiebron.
  • Het overzicht toont geen wachtwoord-, token-, secret- of credentialinformatie.

3. Scope

Deze usecase beschrijft:

  • Laden van een server-side gefilterd accountoverzicht.
  • Zoeken op naam, e-mailadres en rolgerelateerde accountcontext.
  • Filteren op actieve status en rollen.
  • Tonen van actieve rollen en niet-publieke roltoekenningen.
  • Tonen van LastSeenAtUtc en een actuele online-indicatie.
  • Selecteren van precies één account voor accountdetail.

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.
  • Accountrollen wijzigen; dit hoort bij UC-BEH-ACC-003 en UC-BEH-ACC-004.
  • Account deactiveren, heractiveren of anonimiseren; dit hoort bij UC-BEH-ACC-005, UC-BEH-ACC-006 en UC-BEH-ACC-007.
  • Individuele gebruikersinstellingen wijzigen; dit hoort bij UC-BEH-ACC-009.

3.1 Afbakening met aangrenzende domeinen

OnderdeelAfbakening
Generiek / AccountLogin, provisioning, logout en selfservice-accountverwijdering blijven bronhoudend in het generieke accountdomein.
Generiek / Profiel en voorkeurenEigen profiel- en voorkeurenbeheer blijft gebruikergericht; accountbeheer bevat alleen beheerdercorrecties en uitzonderingsacties.
Generiek / RelatiesRelatie-uitnodigingen, acceptatie en normale ontkoppeling blijven in het relatiedomein; accountbeheer kan wel afhankelijke toegang beëindigen bij lifecycle-acties.
Beheerder / DocentondersteuningDocentstructuur, leerlingtoegang en collaborators worden daar supportmatig beheerd; accountbeheer ziet accountbrede identiteit, rollen en lifecycle.
Identity providerAuthenticatie, wachtwoorden, verificatie, tokens en credentials blijven buiten OefenHub-accountbeheer.

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 beheerder bevindt zich binnen Accounts beheren of een onderliggende accountbeheerroute.
PRE-004Clientstate, routeparameters of verborgen formuliervelden bepalen nooit welk account gewijzigd mag worden.
PRE-005De identity provider blijft bronhouder voor authenticatie, wachtwoorden, tokens, sessies en credential lifecycle.
PRE-006Er bestaan nul of meer Users-records.
PRE-007De beheerder heeft toegang tot de accountbeheerpagina.

5. Post-condities

IDResultaat
POST-001De beheerder ziet een actueel accountoverzicht of een lege staat.
POST-002Geen Users-, UserRoles- of UserSettings-record is gewijzigd.
POST-003Geen accountlifecycleactie is uitgevoerd.
POST-004Bij selectie van precies één account kan de beheerder accountdetail openen.
POST-005Credentialinformatie van de identity provider is niet opgehaald of getoond.

6. Trigger

De usecase start wanneer de beheerder via de beheeromgeving de pagina Accounts beheren opent.

7. Normale processtroom

StapActorComponent / contextActieResultaatData / controle
1BeheerderBeheernavigatieOpent Accounts beheren.De frontend vraagt het accountoverzicht op.Route: Accounts beheren.
2BackendAutorisatiecomponentControleert actieve beheerdercontext.Alleen een beheerder krijgt accountoverzichtdata.Server-side rolcontrole.
3BackendAccountqueryLaadt Users met status- en profielvelden.Accountrecords worden voorbereid voor weergave.Users.
4BackendRolqueryLaadt actieve UserRoles en Roles.Actieve rolset per account wordt toegevoegd.UserRoles.IsActive = true.
5BackendReadmodelBepaalt LastSeen en online-indicatie.Online-indicatie wordt afgeleid uit actuele applicatiecontext.LastSeenAtUtc en realtime aanwezigheidsbron.
6FrontendAccountoverzichtToont zoekveld, filters en lijst.De beheerder kan filteren, zoeken en één account selecteren.Read-only overzicht.
7BeheerderAccountoverzichtSelecteert één account.Actie Open detail wordt beschikbaar.Geselecteerde Users.Id.

8. Alternatieve en exceptionele processtromen

StapSituatieAfhandelingPopupKeyDatagevolg
2Gebruiker heeft geen actieve beheerderrol.De backend weigert toegang en toont een veilige toegang-geweigerdafhandeling.Niet van toepassing.Geen.
3Geen accounts gevonden.Het overzicht toont een lege staat zonder mutatie.Niet van toepassing.Geen.
4Rolreadmodel kan niet volledig worden geladen.Accounts worden niet met onvolledige autorisatie-informatie als volledig geldig getoond; de pagina toont een veilige foutafhandeling.Niet van toepassing.Geen.
5Online-indicatie is tijdelijk niet beschikbaar.Het overzicht toont LastSeenAtUtc en markeert online-status als niet beschikbaar, niet als offline.Niet van toepassing.Geen.
7Geselecteerd account bestaat niet meer of is geanonimiseerd tijdens de selectie.De selectie wordt geweigerd en het overzicht wordt opnieuw geladen.Niet van toepassing.Geen.

9. Business rules

IDBusiness rule
BR-001Het accountoverzicht is read-only.
BR-002Credentialgegevens uit de identity provider worden niet getoond.
BR-003Zoeken en filteren gebeurt server-side binnen de beheerderautorisatie.
BR-004Leerlingrol mag in accountweergave niet als combineerbaar met ouder/voogd, docent, beheerder of TestDocent worden behandeld.
BR-005Niet-publieke rollen zoals Beheerder en TestDocent moeten herkenbaar zijn als beheerrollen.
BR-006Online-status is informatief en bepaalt geen autorisatie.
BR-007Geanonimiseerde accounts blijven waar nodig herkenbaar als geanonimiseerde historische accounts, zonder persoonsgegevens te tonen.

10. Datavalidatie

IDValidatie
VAL-001Zoekterm mag leeg zijn en wordt veilig genormaliseerd.
VAL-002Filterwaarden voor rol en status moeten tot toegestane enum-/rolwaarden behoren.
VAL-003Users.Id uit selectie moet server-side bestaan.
VAL-004Rolnamen worden afgeleid uit Roles en niet uit clientlabels.
VAL-005Online-indicatie mag niet als clientwaarde worden aangeleverd.
VAL-006Paginering- en sorteerparameters worden begrensd.

11. Datamutaties en events

OnderdeelMutatie / event
Geen domeinmutatieHet openen van het overzicht wijzigt geen accountdata.
Geen lifecycle-eventEr wordt geen accountlogregel of domeinevent geschreven voor louter raadplegen.

12. Geen datamutaties

Object / gegevenNiet wijzigen
UsersGeen profiel-, status- of lifecyclevelden wijzigen.
UserRolesGeen roltoekenningen toevoegen of intrekken.
UserSettingsGeen instellingen wijzigen.
Identity providerGeen credentials of sessies opvragen of aanpassen.
Relaties en autorisatiesGeen afhankelijke toegang 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

DocumentAfleiding
Functioneel OntwerpAccountbeheer bevat een overzicht waarmee beheerders gebruikers, rollen, status en online-indicatie kunnen raadplegen.
Technisch OntwerpTechnisch Ontwerp: identiteit en accountlifecycle, autorisatie, logging en foutafhandeling en privacy en anonimisering beschrijven de technische uitwerking. Queries voor overzicht, rollen en online-indicatie worden server-side opgebouwd en gepagineerd.
Software Requirements SpecificationSRS moet vastleggen welke velden zichtbaar zijn en dat credentials nooit worden getoond.
DatabaseGebruikt Users, Roles, UserRoles en afgeleide aanwezigheidsinformatie; 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-afleidingDektUsecasecontext
UC-BEH-ACC-001-REQ-001SRS-RDM-001
SRS-RDM-004
SRS-ACC-002
SRS-ADM-002
SRS-ADM-001
AC-RDM-001
AC-RDM-004
AC-ACC-002
AC-ADM-002
AC-ADM-001
Een beheerder een accountoverzicht kunnen tonen
UC-BEH-ACC-001-REQ-002SRS-AUTH-001
SRS-RDM-001
SRS-RDM-004
SRS-ACC-002
SRS-ADM-002
SRS-ADM-001
AC-AUTH-001
AC-RDM-001
AC-RDM-004
AC-ACC-002
AC-ADM-002
AC-ADM-001
Accountoverzichtdata server-side autoriseren
UC-BEH-ACC-001-REQ-003SRS-ACC-002
SRS-ADM-002
SRS-ADM-001
AC-ACC-002
AC-ADM-002
AC-ADM-001
Actieve rollen per account tonen
UC-BEH-ACC-001-REQ-004SRS-RDM-001
SRS-ADM-001
AC-RDM-001
AC-ADM-001
Actieve status en LastSeenAtUtc tonen
UC-BEH-ACC-001-REQ-005SRS-RDM-001
SRS-ADM-001
AC-RDM-001
AC-ADM-001
Online-status als afgeleide indicatie tonen wanneer beschikbaar
UC-BEH-ACC-001-REQ-006SRS-ADM-001
SRS-NFR-SEC-001
SRS-NFR-PRV-001
AC-ADM-001
AC-NFR-SEC-001
AC-NFR-PRV-001
Geen wachtwoord-, token-, secret- of credentialinformatie tonen
UC-BEH-ACC-001-REQ-007SRS-AUTH-001
SRS-RDM-001
SRS-ADM-001
AC-AUTH-001
AC-RDM-001
AC-ADM-001
Zoeken, filteren en pagineren server-side begrenzen