From 6cbd353992b2a6cc7e6624b203868aa33cabbc5a Mon Sep 17 00:00:00 2001 From: ichuang Date: Sat, 20 Apr 2013 11:57:56 -0400 Subject: [PATCH] make masquerade work properly even if DISABLE_START_DATES true --- lms/djangoapps/courseware/access.py | 2 +- lms/djangoapps/courseware/views.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/courseware/access.py b/lms/djangoapps/courseware/access.py index f7cd74f121..ace9c0096b 100644 --- a/lms/djangoapps/courseware/access.py +++ b/lms/djangoapps/courseware/access.py @@ -236,7 +236,7 @@ def _has_access_descriptor(user, descriptor, action, course_context=None): don't have to hit the enrollments table on every module load. """ # If start dates are off, can always load - if settings.MITX_FEATURES['DISABLE_START_DATES']: + if settings.MITX_FEATURES['DISABLE_START_DATES'] and not is_masquerading_as_student(user): debug("Allow: DISABLE_START_DATES") return True diff --git a/lms/djangoapps/courseware/views.py b/lms/djangoapps/courseware/views.py index 91e7f4553b..0c2197071a 100644 --- a/lms/djangoapps/courseware/views.py +++ b/lms/djangoapps/courseware/views.py @@ -90,6 +90,7 @@ def render_accordion(request, course, chapter, section, model_data_cache): # grab the table of contents user = User.objects.prefetch_related("groups").get(id=request.user.id) + request.user = user # keep just one instance of User toc = toc_for_course(user, request, course, chapter, section, model_data_cache) context = dict([('toc', toc), @@ -261,6 +262,7 @@ def index(request, course_id, chapter=None, section=None, - HTTPresponse """ user = User.objects.prefetch_related("groups").get(id=request.user.id) + request.user = user # keep just one instance of User course = get_course_with_access(user, course_id, 'load', depth=2) staff_access = has_access(user, course, 'staff') registered = registered_for_course(course, user)