UC-DOC-SAM-001 - Collaborators van niveau bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-SAM-001 |
| Naam | Collaborators van niveau bekijken |
| Domein | Docent |
| Subdomein | Samenwerking, collaborators en eigenaarschap |
| Primaire actor | Docent |
| Secundaire actor(en) | Systeem |
| Rolcontext | Docentcontext als actuele eigenaar van het niveau of als actieve collaborator met inzagerecht op de samenwerkingscontext |
| Betrokken schermen | Docent - Oefenaanbod, niveau-detail, Collaborators op niveau |
| Gerelateerde usecases | UC-DOC-AANB-001, UC-DOC-AANB-002, UC-DOC-AANB-004, UC-DOC-SAM-002, UC-DOC-SAM-003, UC-DOC-SAM-004, UC-DOC-SAM-005 |
| Primaire entiteiten | Levels, LevelCollaborators, Users, UserRoles, Roles, UserRelationships |
| Secundaire entiteiten / events | Readmodel collaborators, actieve docent-docentrelatie, eigenaarcontext, laatste wijziging, samenwerkingshistorie |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een docent binnen een geselecteerd niveau de huidige collaborators en beschikbare samenwerkingscontext bekijkt. De weergave maakt duidelijk welke docenten actief als collaborator aan het niveau gekoppeld zijn en welke docent de actuele eigenaar is. De usecase is bewust read-only: het bekijken van collaborators wijzigt geen relaties, leerlingtoegang, oefeningconfiguraties of eigenaarschap. Samenwerking op niveau-laag geeft uitsluitend rechten op onderwijsinhoud binnen dat niveau. Het geeft geen toegang tot leerlingen, resultaten, geschiedenis of live meekijken.
3. Scope
3.1 Binnen scope
- Openen van de collaboratorweergave voor een geselecteerd niveau.
- Tonen van actuele eigenaar en actieve collaborators.
- Tonen van beschikbare acties op basis van eigenaar- of collaboratorcontext.
- Server-side controleren of de docent de samenwerkingscontext van dit niveau mag bekijken.
- Afleiden welke docenten op basis van actieve docent-docentrelatie beschikbaar zijn voor koppeling.
- Zichtbaar maken dat collaborators geen leerling-, resultaat- of live-meekijkrechten krijgen.
3.2 Buiten scope
- Nieuwe docent-docentrelaties aanmaken.
- Relatie-uitnodigingen versturen of accepteren.
- Collaborators toevoegen of verwijderen.
- Eigenaarschap overdragen.
- Leerlingen of niveau-autorisaties beheren.
- Centrale beheerderondersteuning voor collaborators.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol ingelogd. |
| PRE-002 | De gebruiker heeft een actieve docentrol. |
| PRE-003 | Er is een geselecteerd niveau. |
| PRE-004 | Het niveau bestaat en is niet logisch verwijderd. |
| PRE-005 | De gebruiker is actuele eigenaar van het niveau of actieve collaborator met inzagerecht op de niveaucontext. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De collaboratorweergave is getoond. |
| POST-002 | Er zijn geen datamutaties uitgevoerd. |
| POST-003 | De gebruiker ziet alleen samenwerkingsinformatie binnen de geautoriseerde niveaucontext. |
| POST-004 | Niet-toegestane acties zijn verborgen of uitgeschakeld. |
6. Trigger
De docent opent vanuit Oefenaanbod of het niveau-detail de sectie Collaborators.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Docent | Oefenaanbod | Selecteert een niveau | Laadt niveaucontext | Levels.Id |
| 2 | Systeem | Backend autorisatie | Controleert docentcontext | Bepaalt eigenaar/collaboratorrechten | UserRoles, LevelCollaborators |
| 3 | Systeem | Collaborator-readmodel | Haalt actuele eigenaar op | Geeft eigenaarregel terug | Levels.OwnerUserId |
| 4 | Systeem | Collaborator-readmodel | Haalt actieve collaborators op | Geeft lijst met collaborators terug | LevelCollaborators.IsActive = true |
| 5 | Systeem | Relatiecontext | Bepaalt beschikbare docenten voor koppeling | Toont alleen kandidaten met actieve docent-docentrelatie | UserRelationships |
| 6 | Frontend | Collaborators op niveau | Rendert eigenaar, collaborators en beschikbare acties | Toont contextuele acties | Autorisatie-uitkomst |
| 7 | Docent | Collaborators op niveau | Bekijkt de lijst | Geen datamutatie | Read-only |
| 8 | Systeem | UI-state | Verbergt of blokkeert niet-toegestane acties | Voorkomt clientside bypass | Server-side autorisatie blijft leidend |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Gebruiker heeft geen actieve docentrol | Toegang tot de pagina wordt geblokkeerd. | Niet van toepassing | Geen |
| ALT-002 | 2 | Gebruiker is geen eigenaar of collaborator van het niveau | Systeem toont geen collaboratorinformatie en blokkeert de route. | Niet van toepassing | Geen |
| ALT-003 | 3 | Niveau bestaat niet meer of is niet beschikbaar | Systeem toont niet-beschikbaarafhandeling. | Niet van toepassing | Geen |
| ALT-004 | 5 | Er zijn geen actieve collaborators | Systeem toont lege collaboratorlijst met eigenaarregel. | Niet van toepassing | Geen |
| ALT-005 | 5 | Er zijn geen beschikbare docenten om toe te voegen | Systeem toont geen kandidatenlijst of een lege statusmelding. | Niet van toepassing | Geen |
| ALT-006 | 6 | Docent is collaborator maar geen eigenaar | Systeem toont inhoudelijke samenwerkingscontext maar blokkeert beheeracties zoals toevoegen, verwijderen en eigendom overdragen. | Niet van toepassing | Geen |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Collaborators worden altijd per niveau vastgelegd. |
| BR-002 | Alleen actieve collaboratorrecords tellen mee voor huidige samenwerkingsrechten. |
| BR-003 | De actuele eigenaar van een niveau is geen gewone collaborator, maar mag wel in dezelfde context zichtbaar zijn. |
| BR-004 | Een collaborator krijgt geen toegang tot leerlingen, resultaten, geschiedenis of live meekijken. |
| BR-005 | Het bekijken van collaborators wijzigt geen relatie- of autorisatierecords. |
| BR-006 | Beschikbare kandidaten voor koppeling worden afgeleid uit actieve docent-docentrelaties. |
| BR-007 | Clientstate of routeparameters mogen niet bepalen welke niveaucontext zichtbaar is zonder server-side controle. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| LevelId | Moet bestaan en toegankelijk zijn binnen docentcontext. |
| Docentrol | Moet actief zijn op het moment van openen. |
| Collaboratorstatus | Alleen actieve records tellen mee. |
| Docent-docentrelatie | Alleen actieve relaties mogen kandidaten opleveren. |
| Acties | Acties worden afgeleid uit server-side autorisatie, niet uit zichtbare knoppen. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1 | Read | Levels | Niveaucontext ophalen. |
| 2 | Read | UserRoles/Roles | Actieve docentrol controleren. |
| 3 | Read | LevelCollaborators | Actieve collaborators ophalen. |
| 4 | Read | UserRelationships | Beschikbare docent-docentrelaties bepalen. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| LevelCollaborators | Bekijken maakt geen collaboratorrecord aan en wijzigt geen status. |
| UserRelationships | Relaties worden niet aangemaakt of aangepast. |
| StudentLevelAuthorizations | Collaboratorinzage wijzigt geen leerlingtoegang. |
| Exercises | Oefeningen worden niet gewijzigd. |
| LiveViewAudit | Bekijken van collaborators start geen live meekijksessie. |
13. State diagram
Niet van toepassing. De usecase bekijkt collaboratorrecords maar wijzigt geen statusobject.
14. Decision flow
De decision flow bepaalt of de docent de collaboratorcontext van het gekozen niveau mag zien en welke acties in het readmodel zichtbaar mogen worden.
15. Data lifecycle diagram
Er ontstaan geen nieuwe records. De usecase leest bestaande niveau-, relatie- en collaboratorgegevens en toont een afgeleid readmodel.
16. Sequence diagrammen
16.1 Collaborators bekijken
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | De 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
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Vastleggen dat collaboratorweergave niveaugebonden is en geen leerling-, resultaat- of live-meekijkrechten geeft. |
| Technisch Ontwerp | Technisch Ontwerp: oefencatalogus, autorisatie en logging en historie beschrijven de technische uitwerking. Server-side autorisatie op niveaucontext, eigenaarstatus en actieve collaboratorstatus uitwerken. |
| Software Requirements Specification | Requirements opnemen voor read-only collaboratorinzage en actieafleiding op basis van rechten. |
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-afleiding | Dekt | Usecasecontext |
|---|---|---|
REQ-UC-DOC-SAM-001-001 | SRS-AUTH-001 SRS-CAT-001 SRS-TCH-006 AC-AUTH-001 AC-CAT-001 AC-TCH-006 | Collaborators per niveau kunnen tonen aan bevoegde docenten |
REQ-UC-DOC-SAM-001-002 | SRS-CAT-001 SRS-TCH-002 AC-CAT-001 AC-TCH-002 | De actuele eigenaar van een niveau zichtbaar kunnen maken in de samenwerkingscontext |
REQ-UC-DOC-SAM-001-003 | SRS-LRN-006 SRS-TCH-004 SRS-LIVE-001 AC-LRN-006 AC-TCH-004 AC-LIVE-001 | Collaboratorinzage geen leerling-, resultaat- of live-meekijkrechten geven |
REQ-UC-DOC-SAM-001-004 | SRS-AUTH-001 SRS-TCH-006 AC-AUTH-001 AC-TCH-006 | Niet-toegestane collaboratoracties server-side blokkeren |