vbv/server/vbv_lernwelt/course/permissions.py

35 lines
852 B
Python

from vbv_lernwelt.course.models import CourseSession, CourseSessionUser
def has_course_access_by_page_request(request, obj):
return has_course_access(request.user, obj.specific.get_course())
def has_course_access(user, course):
if user.is_superuser:
return True
# attached to CourseSession
course_session = CourseSessionUser.objects.filter(
course_session__course_id=course.id, user=user
).exists()
if course_session:
return True
# TODO is trainer/expert of session
# TODO check school class access
return False
def course_sessions_for_user_qs(user):
if user.is_superuser:
return CourseSession.objects.all()
course_sessions = CourseSession.objects.filter(
course_session_user__user=user
).select_related("coursesessionuser")
return course_sessions