This will remove imports from __future__ that are no longer needed. https://docs.python.org/3.5/library/2to3.html#2to3fixer-future
39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
"""
|
|
Declares CourseUsageInfo class to be used by the transform method in
|
|
Transformers.
|
|
"""
|
|
|
|
|
|
from lms.djangoapps.courseware.access import _has_access_to_course
|
|
|
|
|
|
class CourseUsageInfo(object):
|
|
'''
|
|
A class object that encapsulates the course and user context to be
|
|
used as currency across block structure transformers, by passing
|
|
an instance of it in calls to BlockStructureTransformer.transform
|
|
methods.
|
|
'''
|
|
def __init__(self, course_key, user):
|
|
# Course identifier (opaque_keys.edx.keys.CourseKey)
|
|
self.course_key = course_key
|
|
|
|
# User object (django.contrib.auth.models.User)
|
|
self.user = user
|
|
|
|
# Cached value of whether the user has staff access (bool/None)
|
|
self._has_staff_access = None
|
|
|
|
@property
|
|
def has_staff_access(self):
|
|
'''
|
|
Returns whether the user has staff access to the course
|
|
associated with this CourseUsageInfo instance.
|
|
|
|
For performance reasons (minimizing multiple SQL calls), the
|
|
value is cached within this instance.
|
|
'''
|
|
if self._has_staff_access is None:
|
|
self._has_staff_access = _has_access_to_course(self.user, 'staff', self.course_key)
|
|
return self._has_staff_access
|