Skip to main content

UC-DOC-SAM-004 - Collaboratorrechten binnen niveau toepassen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-DOC-SAM-004
NaamCollaboratorrechten binnen niveau toepassen
DomeinDocent
SubdomeinSamenwerking, collaborators en eigenaarschap
Primaire actorSysteem
Secundaire actor(en)Docent, Systeem
RolcontextDocentcontext waarbij de gebruiker actuele eigenaar of actieve collaborator van het niveau kan zijn
Betrokken schermenDocent - Oefenaanbod, categorieën, oefeningen, configuratie, afgeschermde leerling- en resultaatroutes
Gerelateerde usecasesUC-DOC-SAM-001, UC-DOC-SAM-002, UC-DOC-SAM-003, UC-DOC-AANB-004, UC-DOC-OEF-004, UC-DOC-OEF-005, UC-DOC-LLN-001, UC-DOC-RES-001, UC-DOC-LIVE-001
Primaire entiteitenLevels, LevelCollaborators, Exercises, LevelCategories, UserRoles
Secundaire entiteiten / eventsAutorisatiecontext, contentbewerkrechten, routeguard, ExerciseHistory
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe OefenHub bij docentacties bepaalt welke rechten een actieve collaborator binnen een niveau heeft. Een collaborator mag meewerken aan onderwijsinhoud binnen het niveau, zoals categorieën binnen het niveau, concrete oefeningen en moduleconfiguratie. Die samenwerking geeft geen toegang tot leerlingen, leerlingautorisaties, resultaten, geschiedenis of live meekijken van de eigenaar. De usecase is daarom vooral een autorisatie- en routeguardflow die bij meerdere docentusecases wordt aangeroepen.

3. Scope

3.1 Binnen scope

  • Bepalen of een docent eigenaar of actieve collaborator van een niveau is.
  • Toestaan van inhoudelijke bewerkacties binnen de niveaucontext.
  • Blokkeren van leerling-, resultaat-, geschiedenis- en live-meekijkroutes voor collaborators zonder eigen leerlingautorisatiecontext.
  • Vastleggen van contentwijzigingen met de echte uitvoerende actor.
  • Toepassen van rechten bij directe URL’s, browserstate en API-aanroepen.

3.2 Buiten scope

  • Collaborators toevoegen of verwijderen.
  • Eigenaarschap overdragen.
  • Nieuwe relatietypen aanmaken.
  • Leerlingautorisaties toekennen aan collaborators.
  • Beheerder-forceeracties.
  • Detailuitwerking van iedere contentmutatie zelf.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd.
PRE-002De gebruiker heeft een actieve docentrol.
PRE-003Er is een niveaucontext voor de gevraagde actie.
PRE-004Het niveau bestaat.
PRE-005De gevraagde actie is gekoppeld aan een content-, leerling-, resultaat- of live-meekijkroute.

5. Post-condities

IDResultaat
POST-001Toegestane contentacties kunnen doorgaan binnen het niveau.
POST-002Niet-toegestane leerling-, resultaat- en live-meekijkacties worden geblokkeerd.
POST-003Er is geen uitbreiding van zichtbare gegevensset ontstaan door collaboratorstatus.
POST-004Contentwijzigingen blijven auditbaar met de echte actor.

6. Trigger

Een docent voert een actie uit op een niveau, categorie, oefening of afgeschermde route waarbij collaboratorrechten relevant zijn.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1DocentDocentrouteStart een actie binnen niveaucontextFrontend vraagt autorisatie aanRoute/API
2SysteemBackend autorisatieLaadt gebruiker en actieve docentrolBepaalt docentcontextUserRoles
3SysteemBackend autorisatieLaadt niveaucontextBepaalt eigenaar en collaboratorstatusLevels, LevelCollaborators
4SysteemBeslisregelClassificeert actie als content of leerling/resultaat/liveKiest autorisatiepadActionType
5SysteemContentpadStaat actie toe bij eigenaar of actieve collaboratorContentflow mag doorgaanLevelCategories/Exercises
6SysteemAfgeschermd padBlokkeert leerling-, resultaat- of live-route voor collaborator zonder eigen relatie/autorisatieRouteguard weigert toegangStudentLevelAuthorizations/LiveViewAudit
7SysteemAuditGeeft echte actor door aan vervolgmutatieWijziging wordt herleidbaarChangedByUserId
8FrontendUIToont alleen toegestane actiesVoorkomt misleidende optiesAutorisatie-readmodel

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Geen actieve docentrolSysteem blokkeert alle docentniveauacties.Niet van toepassingGeen
ALT-0023Geen eigenaar en geen actieve collaboratorSysteem blokkeert contentactie.Niet van toepassingGeen
ALT-0034Actie betreft leerlingbeheerCollaboratorstatus is onvoldoende; systeem vereist eigen docent-leerlingcontext.Niet van toepassingGeen
ALT-0044Actie betreft resultaten of geschiedenisCollaboratorstatus is onvoldoende; systeem vereist eigen autorisatiecontext.Niet van toepassingGeen
ALT-0054Actie betreft live meekijkenCollaboratorstatus is onvoldoende; systeem vereist eigen docent-leerlingrelatie en niveauautorisatie.Niet van toepassingGeen
ALT-0065Collaboratorrecord is net gedeactiveerdSysteem leest actuele status en blokkeert de mutatie.Niet van toepassingGeen

9. Business rules

IDRegel
BR-001Collaboratorrechten zijn niveaugebonden.
BR-002Een actieve collaborator mag onderwijsinhoud binnen dat niveau beheren volgens de toegestane contentacties.
BR-003Collaboratorstatus geeft geen leerlingtoegang.
BR-004Collaboratorstatus geeft geen resultaat- of geschiedenisrechten.
BR-005Collaboratorstatus geeft geen live-meekijkrecht.
BR-006De actuele eigenaar behoudt de zwaardere beheertaken zoals collaboratorbeheer en eigendomsoverdracht.
BR-007Elke contentwijziging wordt vastgelegd met de werkelijke uitvoerende gebruiker.
BR-008Server-side autorisatie is leidend; UI-state is nooit voldoende.

10. Datavalidatie

Veld / objectValidatie
ActionTypeMoet worden geclassificeerd als content, leerlingbeheer, resultaat, geschiedenis, live of beheeractie.
LevelContextMoet server-side uit het object of routepad worden afgeleid en gecontroleerd.
CollaboratorStatusAlleen actieve records tellen mee.
EigenaarstatusGeeft bredere niveaubeheerrechten dan collaboratorstatus.
AuditactorMoet altijd de echte uitvoerder zijn.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
7ContextAuditactorDe echte actor wordt doorgegeven aan vervolgmutaties.
5VervolgmutatieLevelCategories/Exercises/ExerciseHistoryAlleen wanneer de onderliggende contentusecase mutaties uitvoert.

12. Geen datamutaties

EntiteitReden
LevelCollaboratorsDeze usecase wijzigt collaboratorrecords niet.
StudentLevelAuthorizationsCollaboratorrechten maken geen leerlingautorisaties.
LiveViewAuditEr start geen live meekijksessie door contentcollaboratie.
ExerciseRunsEr ontstaan geen leerlingruns.
UserRelationshipsRelaties worden niet aangepast.

13. State diagram

Niet als zelfstandige statusflow. De usecase interpreteert de actuele status van LevelCollaborators en past autorisatie toe.

14. Decision flow

De decision flow onderscheidt eigenaar, actieve collaborator, onbevoegde docent en het type actie waarop rechten worden toegepast.

15. Data lifecycle diagram

Er ontstaat geen nieuw rechtrecord. Rechten worden afgeleid uit bestaande rol-, niveau-, eigenaar- en collaboratorgegevens.

16. Sequence diagrammen

16.1 Collaboratorrechten toepassen

17. Popupverwijzingen

PopupKeyMomentDoel
Niet van toepassingDe usecase gebruikt geen domeinspecifieke popup.Autorisatie en weergave verlopen via routeguard, readmodel of bestaande pagina-afhandeling.

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

DoeldocumentAfleiding
Functioneel OntwerpCollaboratorrechten expliciet begrenzen tot content binnen niveau en uitsluiten van leerling/resultaat/live-toegang.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus, autorisatie en logging en historie beschrijven de technische uitwerking. Centrale autorisatiepolicy voor niveau-eigenaar versus actieve collaborator uitwerken.
Software Requirements SpecificationRequirements opnemen voor server-side handhaving van collaboratorrechten per actietype.

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-DOC-SAM-004-001SRS-RDM-001
SRS-RDM-005
SRS-CAT-001
SRS-TCH-006
AC-RDM-001
AC-RDM-005
AC-CAT-001
AC-TCH-006
Collaboratorrechten per niveau afleiden uit actieve LevelCollaborators
REQ-UC-DOC-SAM-004-002SRS-CAT-001
SRS-TCH-006
SRS-CNT-001
AC-CAT-001
AC-TCH-006
AC-CNT-001
Actieve collaborators contentbewerkrechten binnen het niveau kunnen geven
REQ-UC-DOC-SAM-004-003SRS-AUTH-001
SRS-LRN-006
SRS-TCH-004
SRS-LIVE-001
AC-AUTH-001
AC-LRN-006
AC-TCH-004
AC-LIVE-001
Voorkomen dat collaboratorstatus leerling-, resultaat- of live-meekijktoegang oplevert
REQ-UC-DOC-SAM-004-004SRS-AUTH-001
SRS-TCH-001
SRS-CNT-004
AC-AUTH-001
AC-TCH-001
AC-CNT-004
Directe URL- en API-aanroepen server-side controleren
REQ-UC-DOC-SAM-004-005SRS-TCH-006
SRS-CNT-001
SRS-NFR-AUD-001
AC-TCH-006
AC-CNT-001
AC-NFR-AUD-001
Contentwijzigingen van collaborators auditbaar vastleggen met de echte actor