Skip to main content

UC-BEH-DOCSUP-012 — Docent-docenttoegang forceren

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-DOCSUP-012
NaamDocent-docenttoegang forceren
DomeinBeheerder / Docentondersteuning
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, database, autorisatiecomponent, docentondersteuningcomponent, historiecomponent
RolcontextActieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenContent > Docent ondersteuning
Gerelateerde usecasesUC-BEH-DOCSUP-001, UC-BEH-DOCSUP-002, UC-BEH-DOCSUP-003, UC-BEH-DOCSUP-004, UC-BEH-DOCSUP-005, UC-BEH-DOCSUP-006, UC-BEH-DOCSUP-007, UC-BEH-DOCSUP-008, UC-BEH-DOCSUP-009, UC-BEH-DOCSUP-010, UC-BEH-DOCSUP-011, UC-BEH-DOCSUP-013, UC-BEH-DOCSUP-014
Primaire entiteitenUsers, UserRoles, Roles, TeacherLevels, TeacherLevelCategories, TeacherLevelCategoryExercises, Exercises, ExerciseModules, ExerciseHistory, LevelCollaborators, LevelStudentAuthorizations, UserRelationships
Secundaire entiteiten / eventsRelationshipEvents, SystemMessages, beheerlog, docentondersteuning-readmodels, autorisatiecomponent
Gerelateerde popupsPOP-BEH-DOCSUP-FORCE-TEACHER-RELATION-CONFIRM
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een beheerder vanuit docentondersteuning bij uitzondering een docent-docentcontext forceert tussen de geselecteerde docent en een andere actieve docent.

De actie is bedoeld voor supportscenario’s waarin een geldige samenwerking nodig is om een collaboratoractie of eigendomsoverdracht correct te kunnen voorbereiden, terwijl de normale uitnodigingsflow niet bruikbaar is. Deze beheeractie is expliciet en auditbaar.

De actie is supportgericht, vindt plaats binnen één geselecteerde docentcontext en vereist server-side validatie van beide docentaccounts en de beoogde docent-docentrelatie.

De wijziging wordt auditbaar vastgelegd. De actie wijzigt geen historische runs, resultaten of centrale categorie- en module-identiteit.

Uitgangspunten

  • Docentondersteuning werkt altijd vanuit één gekozen docentcontext.
  • De beheerder heeft supportgerichte inzage, maar mutaties blijven beperkt tot expliciete beheeracties met audit.
  • Centrale categorie- en module-identiteit worden niet vanuit deze pagina beheerd.
  • Server-side autorisatie is leidend; clientstate mag geen objecttoegang afdwingen.
  • Historische runs, resultaten en PDF-contexten worden niet herschreven.

3. Scope

Deze usecase beschrijft:

  • Selecteren van een doel-docent voor een docent-docentcontext met de gekozen docent.
  • Controleren dat beide gebruikers actieve docentaccounts zijn.
  • Voorkomen van dubbele of conflicterende actieve docent-docentrelaties.
  • Tonen van een bevestiging via PopupKey met verplichte reden.
  • Aanmaken of heractiveren van de docent-docentrelatie met audit en relatie-event.

Deze usecase beschrijft niet:

  • Centraal categoriebeheer; dat blijft bronhoudend in Beheerder / Categorieën beheren.
  • Centraal technisch modulebeheer; dat blijft bronhoudend in Beheerder / Modules beheren.
  • Volledig account- en rolbeheer; dat blijft bronhoudend in Beheerder / Accountbeheer.
  • Reguliere docentflows vervangen; docentondersteuning is supportgericht en niet de primaire docentinterface.
  • Live meekijken tijdens actieve oefeningen; beheerders mogen geschiedenis analyseren, maar niet live meekijken.
  • Popupteksten, knopteksten of inputlabels specificeren; usecases verwijzen uitsluitend naar PopupKey.

3.1 Afbakening met aangrenzende domeinen

OnderdeelAfbakening
Docent / OefenaanbodDocenten beheren hun eigen niveaus, categorieën en oefeningen via de reguliere docentflows; docentondersteuning biedt beheerderinzage en gerichte correctie.
Beheerder / Categorieën beherenCentrale categorie-identiteit, migratie en statuswijziging worden daar beheerd, niet in docentondersteuning.
Beheerder / Modules beherenTechnische modulemetadata en modulemigraties worden daar beheerd; docentondersteuning kan alleen concrete oefeningcontext inspecteren.
Beheerder / AccountbeheerRollen, accountstatus en account lifecycle horen daar; docentondersteuning gebruikt bestaande account- en relatiecontext.
Generiek / RelatiesRelaties en uitnodigingen blijven bronhoudend in het relatiedomein; docentondersteuning kan alleen bestaande geldige context gebruiken of een expliciete beheeractie auditen.

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 de beheeromgeving via Content > Docent ondersteuning.
PRE-004De pagina gebruikt actuele serverdata; clientstate, routeparameters of verborgen formuliervelden bepalen geen autorisatie, docentcontext, niveaucontext of oefeningcontext.
PRE-005De ondersteuningsweergave voor één docent is geopend.
PRE-006Er is een doel-docent geselecteerd die een actief docentaccount heeft.
PRE-007De beheerder heeft de actie expliciet gekozen.

5. Post-condities

IDResultaat
POST-001Er bestaat een actieve docent-docentcontext tussen de geselecteerde docent en de doel-docent wanneer alle validaties slagen.
POST-002De wijziging is auditbaar vastgelegd.
POST-003Historische resultaten en runs blijven ongewijzigd.
POST-004Afgeleide collaborator- en kandidaatlijsten kunnen opnieuw worden opgebouwd.
POST-005Onbevoegde of ongeldige contexten zijn veilig geblokkeerd.

6. Trigger

De usecase start wanneer de beheerder de actie Docent-docenttoegang forceren kiest en bevestigt.

7. Normale processtroom

StapActorComponent / contextHandelingResultaatBelangrijke gegevens
1BeheerderDocentondersteuningKiest de beheeractie.De frontend opent de bevestiging.Geselecteerde context.
2BackendAutorisatiecomponentControleert beheerdercontext.Alleen beheerder mag de actie uitvoeren.Server-side rolcontext.
3BackendDocentContextServiceValideert de geselecteerde docent en doel-docent.Alleen twee actieve docentaccounts zijn toegestaan.Users, UserRoles, Roles.
4BackendRelatieServiceControleert bestaande docent-docentrelatie.Dubbele of conflicterende actieve relaties worden voorkomen.UserRelationships.
5BeheerderPopupBevestigt actie en vult reden in wanneer vereist.De definitieve verwerking start.POP-BEH-DOCSUP-FORCE-TEACHER-RELATION-CONFIRM
6BackendRelatieServiceMaakt of heractiveert de docent-docentrelatie.De docent-docentcontext wordt actief.UserRelationships, RelationshipEvents.
7BackendAuditServiceLegt de actie vast.De wijziging is herleidbaar.Beheerlog / history.
8FrontendDocentondersteuningVervers de context.De beheerder ziet de actuele situatie.Readmodel opnieuw geladen.

8. Alternatieve en exceptionele processtromen

StapSituatieAfhandelingPopupKeyDatamutatie
2Beheerdercontext is ongeldig.De backend weigert de actie en toont een veilige blokkade.POP-BEH-DOCSUP-NO-ACCESSGeen.
3De geselecteerde docent bestaat niet of is niet toegankelijk.De ondersteuningsweergave wordt niet geopend of wordt veilig teruggezet naar het overzicht.POP-BEH-DOCSUP-SAVE-ERRORGeen.
4Het gekozen object bestaat niet meer.De pagina toont dat het object niet beschikbaar is en ververst de context.Niet van toepassingGeen.
5De readmodeldata is tijdelijk incompleet.De beschikbare gegevens worden getoond met veilige ontbrekend-status; ontbrekend wordt niet als nul geïnterpreteerd.Niet van toepassingGeen.
6De beheerder gebruikt een oude route of clientstate.De backend negeert de clientcontext en herleidt de actuele context opnieuw.Niet van toepassingGeen.

9. Business rules

IDBusiness rule
BR-UC-BEH-DOCSUP-012-001De actie is alleen toegestaan binnen een geldige server-side beheerdercontext.
BR-UC-BEH-DOCSUP-012-002Beide betrokken gebruikers moeten actieve docentaccounts zijn.
BR-UC-BEH-DOCSUP-012-003De geselecteerde docent en doel-docent mogen niet dezelfde gebruiker zijn.
BR-UC-BEH-DOCSUP-012-004De beheerder moet de actie expliciet bevestigen en een reden opgeven.
BR-UC-BEH-DOCSUP-012-005Dubbele of conflicterende actieve docent-docentrelaties zijn niet toegestaan.
BR-UC-BEH-DOCSUP-012-006De actie maakt geen collaborator-koppeling en draagt geen eigenaarschap over.
BR-UC-BEH-DOCSUP-012-007Historische runs, resultaten en PDF-contexten worden niet herschreven.
BR-UC-BEH-DOCSUP-012-008De wijziging moet auditbaar zijn.

10. Datavalidatie

IDValidatie
VAL-UC-BEH-DOCSUP-012-001De beheerderrol wordt vlak vóór mutatie gecontroleerd.
VAL-UC-BEH-DOCSUP-012-002De geselecteerde docent en doel-docent moeten bestaan.
VAL-UC-BEH-DOCSUP-012-003Beide gebruikers moeten een actieve docentrol hebben.
VAL-UC-BEH-DOCSUP-012-004De doel-docent mag niet dezelfde gebruiker zijn als de geselecteerde docent.
VAL-UC-BEH-DOCSUP-012-005Er mag nog geen conflicterende actieve docent-docentrelatie bestaan.
VAL-UC-BEH-DOCSUP-012-006De reden is verplicht en mag niet leeg zijn.
VAL-UC-BEH-DOCSUP-012-007De mutatie moet transactioneel worden verwerkt.
VAL-UC-BEH-DOCSUP-012-008Gelijktijdige wijzigingen moeten vóór opslaan opnieuw worden gevalideerd.
VAL-UC-BEH-DOCSUP-012-009De client mag geen verborgen velden als bron van waarheid gebruiken.

11. Datamutaties en events

Object / eventMutatie
UserRelationships / RelationshipEventsAanmaken of activeren van docent-docentcontext met beheer-geforceerde herkomst.
Beheerlog / historyVastleggen van beheerder, tijdstip, betrokken objecten en reden.
SystemMessagesInformatief bericht aan de betrokken docenten wanneer zij een actief intern account hebben; het bericht is geen relatiebron.

12. Geen datamutaties

ObjectWaarom geen mutatie
LevelCollaboratorsEr wordt geen collaborator-koppeling aangemaakt; dat blijft UC-BEH-DOCSUP-010.
TeacherLevelsEigenaarschap, niveaugegevens en zichtbaarheid blijven ongewijzigd.
LevelStudentAuthorizationsLeerlingtoegang wordt niet gewijzigd.
ExerciseRunsHistorische runs, resultaten, gedeelde oefeningen en PDF-contexten blijven behouden.
User credentialsWachtwoorden, tokens en identity-providergegevens blijven buiten scope.

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyGebruik
POP-BEH-DOCSUP-FORCE-TEACHER-RELATION-CONFIRMBevestiging voor de actie Docent-docenttoegang forceren.
POP-BEH-DOCSUP-SAVE-ERRORFoutafhandeling wanneer de beheeractie niet kan worden opgeslagen.

18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification

OnderdeelAfleiding
Functioneel OntwerpFO moet Docent-docenttoegang forceren beschrijven als expliciete supportactie binnen docentondersteuning.
Technisch OntwerpTechnisch Ontwerp: technische rolflows, oefencatalogus, relatiebeheer en logging en historie beschrijven de technische uitwerking. TO vereist transactionele verwerking van relatieheractivatie of relatieaanmaak, server-side validatie en auditregistratie.
Software Requirements SpecificationSRS moet vastleggen dat forceren alleen twee actieve docentaccounts mag verbinden en geen collaborator- of eigendomsmutatie uitvoert.
DatabaseWijzigt UserRelationships / RelationshipEvents en auditrecords; historische runs blijven ongewijzigd.

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
REQ-UC-BEH-DOCSUP-012-001SRS-AUTH-001
SRS-TCH-001
SRS-ADM-008
SRS-ADM-001
AC-AUTH-001
AC-TCH-001
AC-ADM-008
AC-ADM-001
Een beheerder de actie Docent-docenttoegang forceren kunnen laten uitvoeren binnen docentondersteuning
REQ-UC-BEH-DOCSUP-012-002SRS-AUTH-001
SRS-TCH-001
SRS-ADM-001
AC-AUTH-001
AC-TCH-001
AC-ADM-001
De docentcontext server-side valideren
REQ-UC-BEH-DOCSUP-012-003SRS-ACC-002
SRS-TCH-001
SRS-ADM-002
SRS-ADM-001
AC-ACC-002
AC-TCH-001
AC-ADM-002
AC-ADM-001
Afdwingen dat beide betrokken gebruikers actieve docentaccounts zijn
REQ-UC-BEH-DOCSUP-012-004SRS-ADM-001
SRS-POP-001
AC-ADM-001
AC-POP-001
Een bevestiging via PopupKey gebruiken
REQ-UC-BEH-DOCSUP-012-005SRS-ADM-001
SRS-NFR-AUD-001
AC-ADM-001
AC-NFR-AUD-001
De wijziging auditbaar vastleggen
REQ-UC-BEH-DOCSUP-012-006SRS-ADM-001
SRS-NFR-AUD-001
AC-ADM-001
AC-NFR-AUD-001
De geforceerde oorsprong auditbaar vastleggen en altijd een verplichte reden vragen
REQ-UC-BEH-DOCSUP-012-007SRS-LRN-009
SRS-ADM-001
SRS-CNT-001
AC-LRN-009
AC-ADM-001
AC-CNT-001
Historische runs, resultaten en centrale contentidentiteit niet herschrijven
REQ-UC-BEH-DOCSUP-012-008SRS-ADM-001
SRS-NFR-SEC-001
AC-ADM-001
AC-NFR-SEC-001
Conflicterende gelijktijdige wijzigingen veilig afhandelen