import graphene from vbv_lernwelt.course.graphql.types import CourseObjectType, CourseSessionObjectType from vbv_lernwelt.course.models import Course, CourseSession from vbv_lernwelt.course.permissions import has_course_access class CourseQuery(graphene.ObjectType): course = graphene.Field(CourseObjectType, id=graphene.ID()) course_session = graphene.Field(CourseSessionObjectType, id=graphene.ID()) def resolve_course(root, info, id): course = Course.objects.get(pk=id) if has_course_access(info.context.user, course): return course raise PermissionError("You do not have access to this course") def resolve_course_session(root, info, id): course_session = CourseSession.objects.get(pk=id) if has_course_access(info.context.user, course_session.course): return course_session raise PermissionError("You do not have access to this course session")