From 4363b1ede0e9dec09aa12f49d41a531552b686cd Mon Sep 17 00:00:00 2001 From: Adam Butterworth Date: Fri, 3 Apr 2020 09:55:28 -0400 Subject: [PATCH] Refactor public course check to only call if needed --- openedx/core/djangoapps/courseware_api/views.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/openedx/core/djangoapps/courseware_api/views.py b/openedx/core/djangoapps/courseware_api/views.py index df7d009fbd..c7593bbfc7 100644 --- a/openedx/core/djangoapps/courseware_api/views.py +++ b/openedx/core/djangoapps/courseware_api/views.py @@ -89,12 +89,11 @@ class CoursewareInformation(RetrieveAPIView): if not has_access(user, 'load', overview): return False - has_public_access = allow_public_access(overview, [COURSE_VISIBILITY_PUBLIC]) - if user.is_anonymous and not has_public_access: - return False - - if not CourseEnrollment.is_enrolled(user, overview.id) and not has_public_access: - return False + # Anonymous or unenrolled users + if user.is_anonymous or not CourseEnrollment.is_enrolled(user, overview.id): + # do not have access if the course is not public + if not allow_public_access(overview, [COURSE_VISIBILITY_PUBLIC]): + return False # if is_survey_required_and_unanswered(user, course): # TODO: This.