""" This file contains implementation override of SearchInitializer which will allow * To set initial set of masquerades and other parameters """ from opaque_keys import InvalidKeyError from opaque_keys.edx.keys import CourseKey from opaque_keys.edx.locations import SlashSeparatedCourseKey from search.initializer import SearchInitializer from courseware.masquerade import setup_masquerade from courseware.access import has_access class LmsSearchInitializer(SearchInitializer): """ SearchInitializer for LMS Search """ def initialize(self, **kwargs): if 'request' in kwargs and kwargs['request'] and kwargs['course_id']: request = kwargs['request'] try: course_key = CourseKey.from_string(kwargs['course_id']) except InvalidKeyError: course_key = SlashSeparatedCourseKey.from_deprecated_string(kwargs['course_id']) staff_access = bool(has_access(request.user, 'staff', course_key)) setup_masquerade(request, course_key, staff_access)