From 24b4a4d1f252ce208275faed125b52d667c7cc19 Mon Sep 17 00:00:00 2001 From: Carla Duarte Date: Thu, 2 Jul 2020 10:52:41 -0400 Subject: [PATCH] AA-200: Redirecting logged out users on Dates Tab --- lms/djangoapps/courseware/tabs.py | 4 +++- lms/djangoapps/courseware/views/views.py | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/courseware/tabs.py b/lms/djangoapps/courseware/tabs.py index 80bec53a0a..660d99be69 100644 --- a/lms/djangoapps/courseware/tabs.py +++ b/lms/djangoapps/courseware/tabs.py @@ -310,7 +310,7 @@ class SingleTextbookTab(CourseTab): raise NotImplementedError('SingleTextbookTab should not be serialized.') -class DatesTab(CourseTab): +class DatesTab(EnrolledTab): """ A tab representing the relevant dates for a course. """ @@ -333,6 +333,8 @@ class DatesTab(CourseTab): @classmethod def is_enabled(cls, course, user=None): """Returns true if this tab is enabled.""" + if not super().is_enabled(course, user=user): + return False return RELATIVE_DATES_FLAG.is_enabled(course.id) diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index 1e86814055..4858c19dc5 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -1060,6 +1060,14 @@ def dates(request, course_id): ) request.user = masquerade_user + user_is_enrolled = CourseEnrollment.is_enrolled(request.user, course_key) + user_is_staff = has_access(request.user, 'staff', course_key) + + # Render the full content to enrolled users, as well as to course and global staff. + # Unenrolled users who are not course or global staff are redirected to the Outline Tab. + if not user_is_enrolled and not user_is_staff: + raise CourseAccessRedirect(reverse('openedx.course_experience.course_home', args=[course_id])) + course_date_blocks = get_course_date_blocks(course, request.user, request, include_access=True, include_past_dates=True)