Skip to main content

UC-BEH-DOCSUP-010 — Collaborator aan niveau toevoegen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-DOCSUP-010
NaamCollaborator aan niveau toevoegen
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-011, UC-BEH-DOCSUP-012, 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-ADD-COLLABORATOR-CONFIRM
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een beheerder vanuit docentondersteuning een docent als collaborator aan een niveau toevoegt.

De actie is supportgericht, vindt plaats binnen één geselecteerde docentcontext en vereist een bestaand niveau, een geldige kandidaatdocent en een geldige docent-docentcontext.

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:

  • Uitvoeren van de beheeractie: Collaborator aan niveau toevoegen.
  • Controleren van beheerderrol, docentcontext en objectcontext.
  • Tonen van een bevestiging via PopupKey.
  • Verwerken van de domeinmutatie wanneer alle validaties slagen.
  • Auditbaar vastleggen van actor, tijdstip, reden en betrokken objecten.

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 één relevant niveau of object binnen de docentcontext geselecteerd.
PRE-007De beheerder heeft de actie expliciet gekozen.

5. Post-condities

IDResultaat
POST-001De actie Collaborator aan niveau toevoegen is verwerkt wanneer alle validaties slagen.
POST-002De wijziging is auditbaar vastgelegd.
POST-003Historische resultaten en runs blijven ongewijzigd.
POST-004Afgeleide overzichten en aantallen kunnen opnieuw worden opgebouwd.
POST-005Onbevoegde of ongeldige contexten zijn veilig geblokkeerd.

6. Trigger

De usecase start wanneer de beheerder de actie Collaborator aan niveau toevoegen 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 docent- en niveaucontext.Objecten buiten context worden geweigerd.TeacherLevels en contextrecords.
4BackendDomeinserviceControleert object-specifieke voorwaarden.Alle business rules worden opnieuw server-side toegepast.Relaties, autorisaties, collaborators of eigenaar.
5BeheerderPopupBevestigt actie en vult reden in wanneer vereist.De definitieve verwerking start.POP-BEH-DOCSUP-ADD-COLLABORATOR-CONFIRM
6BackendDomeinserviceVoert de mutatie transactioneel uit.De domeinstatus wordt aangepast.LevelCollaborators
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-010-001De actie is alleen toegestaan binnen een geldige server-side docentcontext.
BR-UC-BEH-DOCSUP-010-002Het niveau moet binnen de geselecteerde docentcontext vallen.
BR-UC-BEH-DOCSUP-010-003De kandidaat moet een actief docentaccount zijn.
BR-UC-BEH-DOCSUP-010-004Er moet een geldige docent-docentcontext bestaan tussen de eigenaar en de kandidaatdocent.
BR-UC-BEH-DOCSUP-010-005De kandidaat mag nog geen actieve collaborator op hetzelfde niveau zijn.
BR-UC-BEH-DOCSUP-010-006De beheerder moet de actie expliciet bevestigen en een reden opgeven.
BR-UC-BEH-DOCSUP-010-007Collaboratorrechten geven alleen toegang tot onderwijsinhoud binnen dit niveau.
BR-UC-BEH-DOCSUP-010-008Collaboratorrechten geven geen leerling-, resultaat-, geschiedenis- of live-meekijktoegang.
BR-UC-BEH-DOCSUP-010-009De wijziging moet auditbaar zijn.

10. Datavalidatie

IDValidatie
VAL-UC-BEH-DOCSUP-010-001De beheerderrol wordt vlak vóór mutatie gecontroleerd.
VAL-UC-BEH-DOCSUP-010-002LevelId is verplicht en moet binnen de geselecteerde docentcontext vallen.
VAL-UC-BEH-DOCSUP-010-003CandidateTeacherUserId is verplicht en moet een actief docentaccount zijn.
VAL-UC-BEH-DOCSUP-010-004CandidateTeacherUserId mag niet gelijk zijn aan de huidige eigenaar wanneer dat tot een dubbele collaboratorstatus leidt.
VAL-UC-BEH-DOCSUP-010-005Er moet een geldige docent-docentcontext bestaan.
VAL-UC-BEH-DOCSUP-010-006Er mag nog geen actieve collaborator-koppeling voor dezelfde docent en hetzelfde niveau bestaan.
VAL-UC-BEH-DOCSUP-010-007De reden is verplicht en mag niet leeg zijn.
VAL-UC-BEH-DOCSUP-010-008De mutatie moet transactioneel worden verwerkt.
VAL-UC-BEH-DOCSUP-010-009Gelijktijdige wijzigingen moeten vóór opslaan opnieuw worden gevalideerd.

11. Datamutaties en events

Object / eventMutatie
LevelCollaboratorsAanmaken of heractiveren van collaborator-koppeling voor niveau en kandidaatdocent.
Beheerlog / historyVastleggen van beheerder, tijdstip, betrokken objecten en reden.
SystemMessagesInformatief bericht aan de betrokken docent(en) wanneer zij een actief intern account hebben; het bericht is geen rechtenbron.

12. Geen datamutaties

ObjectWaarom geen mutatie
UserRelationshipsDe docent-docentrelatie wordt niet aangemaakt; er moet al een geldige docent-docentcontext bestaan of via UC-BEH-DOCSUP-012 expliciet zijn geforceerd.
TeacherLevelsEigenaar, 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-ADD-COLLABORATOR-CONFIRMBevestiging voor de actie Collaborator aan niveau toevoegen.
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 Collaborator aan niveau toevoegen 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, server-side contextvalidatie en auditregistratie.
Software Requirements SpecificationSRS moet voorwaarden, bevestiging, redenplicht en uitsluitingen voor Collaborator aan niveau toevoegen vastleggen.
DatabaseWijzigt LevelCollaborators 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-010-001SRS-CAT-001
SRS-TCH-006
SRS-ADM-008
SRS-ADM-001
AC-CAT-001
AC-TCH-006
AC-ADM-008
AC-ADM-001
Een beheerder de actie Collaborator aan niveau toevoegen kunnen laten uitvoeren binnen docentondersteuning
REQ-UC-BEH-DOCSUP-010-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-010-003SRS-AUTH-001
SRS-ADM-002
SRS-ADM-001
AC-AUTH-001
AC-ADM-002
AC-ADM-001
Object-specifieke voorwaarden opnieuw server-side controleren
REQ-UC-BEH-DOCSUP-010-004SRS-ADM-001
SRS-POP-001
AC-ADM-001
AC-POP-001
Een bevestiging via PopupKey gebruiken
REQ-UC-BEH-DOCSUP-010-005SRS-ADM-001
SRS-NFR-AUD-001
AC-ADM-001
AC-NFR-AUD-001
De wijziging auditbaar vastleggen
REQ-UC-BEH-DOCSUP-010-006SRS-CAT-001
SRS-TCH-006
SRS-ADM-001
AC-CAT-001
AC-TCH-006
AC-ADM-001
Collaboratorrechten beperken tot onderwijsinhoud binnen het niveau
REQ-UC-BEH-DOCSUP-010-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-010-008SRS-ADM-001
SRS-NFR-SEC-001
AC-ADM-001
AC-NFR-SEC-001
Conflicterende gelijktijdige wijzigingen veilig afhandelen