VBV-726: Mediathek für Berufsbildner

This commit is contained in:
Daniel Egger 2024-08-26 10:28:10 +02:00
parent 0f6ec66122
commit 020b7b64dd
1 changed files with 26 additions and 4 deletions

View File

@ -69,18 +69,37 @@ def has_media_library(user, course_session_id: int):
).exists()
def is_course_session_learning_mentor(mentor: User, course_session_id: int):
def has_agent_role_in_course_session(
agent: User, course_session_id: int, role: AgentParticipantRoleType
):
course_session = CourseSession.objects.get(id=course_session_id)
if course_session is None:
return False
return AgentParticipantRelation.objects.filter(
agent=mentor,
role=AgentParticipantRoleType.LEARNING_MENTOR.value,
agent=agent,
participant__course_session_id=course_session_id,
role=role.value,
).exists()
def is_course_session_learning_mentor(mentor: User, course_session_id: int):
return has_agent_role_in_course_session(
agent=mentor,
course_session_id=course_session_id,
role=AgentParticipantRoleType.LEARNING_MENTOR,
)
def is_course_session_berufsbildner(agent: User, course_session_id: int):
return has_agent_role_in_course_session(
agent=agent,
course_session_id=course_session_id,
role=AgentParticipantRoleType.BERUFSBILDNER,
)
def is_agent_for_user(
agent: User,
participant_user_id: str,
@ -329,6 +348,7 @@ def course_session_permissions(user: User, course_session_id: int) -> list[str]:
is_expert = is_course_session_expert(user, course_session_id)
is_member = is_course_session_member(user, course_session_id)
is_learning_mentor = is_course_session_learning_mentor(user, course_session_id)
is_berufsbildner = is_course_session_berufsbildner(user, course_session_id)
course_has_learning_mentor = (
course_session.course.configuration.enable_learning_mentor
@ -350,7 +370,9 @@ def course_session_permissions(user: User, course_session_id: int) -> list[str]:
"learning-mentor::guide-members": course_has_learning_mentor
and is_learning_mentor,
"preview": has_course_session_preview(user, course_session_id),
"media-library": is_supervisor or is_expert or is_member,
"media-library": (
is_supervisor or is_expert or is_member or is_berufsbildner
),
"appointments": is_supervisor or is_expert or is_member,
"expert-cockpit": is_expert,
"learning-path": is_member,