35 lines
852 B
Python
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
|