26 lines
784 B
Python
26 lines
784 B
Python
"""
|
|
django-rules for courseware related features
|
|
"""
|
|
from __future__ import absolute_import
|
|
|
|
from opaque_keys.edx.keys import CourseKey
|
|
from student.models import CourseEnrollment
|
|
|
|
import rules
|
|
|
|
|
|
@rules.predicate
|
|
def is_verified_or_masters_track_exam(user, exam):
|
|
"""
|
|
Returns whether the user is in a verified or master's track
|
|
"""
|
|
course_id = CourseKey.from_string(exam['course_id'])
|
|
mode, is_active = CourseEnrollment.enrollment_mode_for_user(user, course_id)
|
|
return is_active and mode in ('verified', 'masters')
|
|
|
|
|
|
# The edx_proctoring.api uses this permission to gate access to the
|
|
# proctored experience
|
|
can_take_proctored_exam = is_verified_or_masters_track_exam
|
|
rules.set_perm('edx_proctoring.can_take_proctored_exam', is_verified_or_masters_track_exam)
|