Skip to main content

UC-BEH-ACC-008 — Account online-status bekijken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-ACC-008
NaamAccount online-status bekijken
DomeinBeheerder / Accountbeheer
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, database, autorisatiecomponent, identity-providerkoppeling, accountlogkanaal
RolcontextActieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenAccounts beheren > Accountoverzicht / Accountdetail
Gerelateerde usecasesUC-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-009, UC-BEH-ACC-010, UC-GEN-ACC-001, UC-GEN-ACC-002, UC-GEN-ACC-005
Primaire entiteitenUsers, Roles, UserRoles, UserSettings, ProfileAvatars, accountlogkanaal
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 in accountbeheer kan zien of een gebruiker recent of actueel online lijkt te zijn. De online-status is bedoeld voor support en probleemanalyse, niet voor live meekijken of inhoudelijke sessiecontrole.

De beheerder mag geen live meekijkfunctie gebruiken tijdens actieve oefeningen. Wel mag accountbeheer LastSeenAtUtc, globale online-indicatie en relevante actieve applicatiecontext tonen voor zover dit geen inhoudelijke live-oefendata openbaart.

Online-status is afgeleid uit applicatiecontext en realtime-aanwezigheid. Er wordt geen aparte domeinsessietabel geïntroduceerd voor reguliere login/logout.

Uitgangspunten

  • LastSeenAtUtc is persistent beschikbaar op Users.
  • Realtime online-indicatie is een afgeleid technisch readmodel.
  • Beheerder mag geschiedenis analyseren maar niet live meekijken.
  • Online-status is informatief en geen autorisatiebron.
  • Reguliere sessies worden niet als aparte relationele sessietabel opgeslagen.

3. Scope

Deze usecase beschrijft:

  • Tonen van LastSeenAtUtc in accountoverzicht en detail.
  • Tonen van actuele online-indicatie wanneer beschikbaar.
  • Tonen van globale actieve context zonder live oefeninhoud.
  • Afhandelen van onbekende of niet-beschikbare online-status.
  • Afbakening ten opzichte van live meekijken.

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.
  • Live meekijken met een actieve oefening door beheerder.
  • Volledige sessiehistorie opslaan in een domeinsessietabel.
  • Realtime oefenvraag, antwoord of voortgang tonen.
  • Actieve identity-provider sessies beheren.

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-006De beheerder heeft accountoverzicht of accountdetail geopend.
PRE-007Users.LastSeenAtUtc is beschikbaar of null.
PRE-008Realtime aanwezigheidsbron is beschikbaar of veilig niet-beschikbaar.

5. Post-condities

IDResultaat
POST-001De beheerder ziet LastSeenAtUtc en eventueel online-indicatie.
POST-002Geen sessie-, account- of gebruikersdata is gewijzigd.
POST-003Live-oefeninhoud is niet getoond.
POST-004Onbekende status wordt niet als offline gepresenteerd.
POST-005Geen relationele sessietabel is gebruikt of aangemaakt.

6. Trigger

De usecase start wanneer het accountoverzicht of accountdetail online- en laatst-gezieninformatie opvraagt.

7. Normale processtroom

StapActorComponent / contextActieResultaatData / controle
1FrontendAccountoverzicht/detailVraagt online-informatie op.De backend verzamelt LastSeen en aanwezigheid.Users.Id.
2BackendAutorisatiecomponentControleert beheerdercontext.Alleen beheerder krijgt accountonline-readmodel.Server-side controle.
3BackendAccountServiceLeest LastSeenAtUtc.Persistente laatst-gezienwaarde wordt toegevoegd.Users.LastSeenAtUtc.
4BackendPresenceServiceLeest actuele aanwezigheid.Realtime online-indicatie wordt afgeleid.SignalR / applicatiecontext.
5BackendPresenceServiceVerwijdert live-oefeninhoud uit readmodel.Beheerder krijgt geen vraag-, antwoord- of voortgangsdata.Privacy- en autorisatiegrens.
6FrontendOverzicht/detailToont status.Online, offline, recent gezien of onbekend wordt zichtbaar.Read-only status.

8. Alternatieve en exceptionele processtromen

StapSituatieAfhandelingPopupKeyDatagevolg
2Actor is geen beheerder.De online-informatie wordt geweigerd.Niet van toepassing.Geen.
3LastSeenAtUtc is null.De UI toont dat er geen laatst-gezienwaarde bekend is.Niet van toepassing.Geen.
4PresenceService is niet beschikbaar.De UI toont status onbekend, niet offline.Niet van toepassing.Geen.
5Gebruiker is actief aan het oefenen.De beheerder ziet hoogstens globale activiteit of context, geen live meekijkdata.Niet van toepassing.Geen.
6Account is geanonimiseerd.Status wordt beperkt of niet getoond wanneer die persoonsherleidend zou zijn.Niet van toepassing.Geen.

9. Business rules

IDBusiness rule
BR-001Beheerder mag geen live meekijken met actieve oefeningen.
BR-002LastSeenAtUtc is persistente laatst-gezieninformatie, geen volledige sessiehistorie.
BR-003Online-status is afgeleid en niet autoriserend.
BR-004Onbekende status mag niet als offline worden geïnterpreteerd.
BR-005Reguliere login/logout introduceert geen aparte relationele sessietabel.
BR-006Live-oefeninhoud wordt niet getoond in accountbeheer.
BR-007Bij logout of deactiveren worden actieve realtimecontexten veilig beëindigd via andere flows.

10. Datavalidatie

IDValidatie
VAL-001Users.Id moet bestaan.
VAL-002Actor moet beheerder zijn.
VAL-003Presence-informatie wordt server-side opgehaald.
VAL-004Client mag online-status niet aanleveren als waarheid.
VAL-005Live-oefendata moet uit het readmodel verwijderd blijven.
VAL-006Null LastSeenAtUtc moet expliciet kunnen worden weergegeven.

11. Datamutaties en events

OnderdeelMutatie / event
Geen domeinmutatieOnline-status bekijken wijzigt geen data.
Geen lifecycle-eventLouter raadplegen van status schrijft geen accountlogregel of domeinevent.

12. Geen datamutaties

Object / gegevenNiet wijzigen
UsersLastSeenAtUtc wordt niet bijgewerkt door deze beheerraadpleging.
LiveViewAuditGeen live meekijksessie starten.
ExerciseRunsGeen oefenvoortgang lezen of wijzigen.
Identity providerGeen sessie of credential wijzigen.
Realtime subscriptionsGeen nieuwe live-meekijksubscription starten.

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 toont online-indicatie en LastSeen voor support, maar beheerder kan niet live meekijken.
Technisch OntwerpTechnisch Ontwerp: identiteit en accountlifecycle, autorisatie, logging en foutafhandeling en privacy en anonimisering beschrijven de technische uitwerking. Presence-readmodel combineert Users.LastSeenAtUtc met realtime aanwezigheid zonder sessietabel.
Software Requirements SpecificationSRS moet het verschil tussen online-indicatie en live meekijken expliciet vastleggen.
DatabaseLeest Users.LastSeenAtUtc; geen mutatie of sessietabel.

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-008-REQ-001SRS-RDM-001
SRS-RDM-004
SRS-ADM-001
AC-RDM-001
AC-RDM-004
AC-ADM-001
Een beheerder LastSeenAtUtc kunnen tonen
UC-BEH-ACC-008-REQ-002SRS-RDM-001
SRS-ADM-001
AC-RDM-001
AC-ADM-001
Online-status als afgeleide indicatie kunnen tonen wanneer beschikbaar
UC-BEH-ACC-008-REQ-003SRS-ADM-001
AC-ADM-001
Onbekende online-status onderscheiden van offline
UC-BEH-ACC-008-REQ-004SRS-ACC-002
SRS-ADM-002
SRS-ADM-001
SRS-LIVE-001
AC-ACC-002
AC-ADM-002
AC-ADM-001
AC-LIVE-001
Bij accountbeheer geen live-oefeninhoud tonen
UC-BEH-ACC-008-REQ-005SRS-ADM-001
AC-ADM-001
Voor reguliere sessies geen domeinsessietabel vereisen
UC-BEH-ACC-008-REQ-006SRS-AUTH-001
SRS-ADM-001
AC-AUTH-001
AC-ADM-001
Online-status server-side bepalen
UC-BEH-ACC-008-REQ-007SRS-ACC-002
SRS-ADM-002
SRS-ADM-001
AC-ACC-002
AC-ADM-002
AC-ADM-001
Accountonline-informatie read-only houden