From b307c84db1cc9729461c5edc5b37422a8b4b5f5a Mon Sep 17 00:00:00 2001 From: Reto Aebersold Date: Tue, 13 Feb 2024 12:19:20 +0100 Subject: [PATCH] fix: allow learning content for trainers Fixes #VBV-644 --- server/vbv_lernwelt/iam/permissions.py | 8 +++++++- server/vbv_lernwelt/iam/tests/test_actions.py | 9 +++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/server/vbv_lernwelt/iam/permissions.py b/server/vbv_lernwelt/iam/permissions.py index ecbdc2f7..4ed6be5b 100644 --- a/server/vbv_lernwelt/iam/permissions.py +++ b/server/vbv_lernwelt/iam/permissions.py @@ -209,10 +209,16 @@ def can_view_course_completions( ) +def can_complete_learning_content(user: User, course_session_id: int) -> bool: + return is_course_session_member( + user, course_session_id + ) or is_course_session_expert(user, course_session_id) + + def course_session_permissions(user: User, course_session_id: int) -> list[str]: return _action_list( { - "complete-learning-content": is_course_session_member( + "complete-learning-content": can_complete_learning_content( user, course_session_id ), } diff --git a/server/vbv_lernwelt/iam/tests/test_actions.py b/server/vbv_lernwelt/iam/tests/test_actions.py index 2a87cf82..3d8bcedf 100644 --- a/server/vbv_lernwelt/iam/tests/test_actions.py +++ b/server/vbv_lernwelt/iam/tests/test_actions.py @@ -33,12 +33,21 @@ class ActionTestCase(TestCase): role=CourseSessionUser.Role.MEMBER, ) + trainer = create_user("trainer") + add_course_session_user( + self.course_session, + trainer, + role=CourseSessionUser.Role.EXPERT, + ) + # WHEN mentor_actions = course_session_permissions(lm, self.course_session.id) participant_actions = course_session_permissions( participant, self.course_session.id ) + trainer_actions = course_session_permissions(trainer, self.course_session.id) # THEN self.assertEqual(len(mentor_actions), 0) self.assertEqual(participant_actions, ["complete-learning-content"]) + self.assertEqual(trainer_actions, ["complete-learning-content"])