From 13096ca58680cacb8c9aa89791a698c24a0feffb Mon Sep 17 00:00:00 2001 From: David Joy Date: Mon, 9 Mar 2020 15:16:26 -0400 Subject: [PATCH] Adding user_has_staff_access to course metadata response. We use this value in the client to understand whether or not we should be showing staff-only parts of the UI to the user. Related to: https://openedx.atlassian.net/browse/TNL-7109 --- openedx/core/djangoapps/courseware_api/serializers.py | 1 + openedx/core/djangoapps/courseware_api/views.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/openedx/core/djangoapps/courseware_api/serializers.py b/openedx/core/djangoapps/courseware_api/serializers.py index d47d6c276f..2b83e7a15f 100644 --- a/openedx/core/djangoapps/courseware_api/serializers.py +++ b/openedx/core/djangoapps/courseware_api/serializers.py @@ -84,6 +84,7 @@ class CourseInfoSerializer(serializers.Serializer): # pylint: disable=abstract- pacing = serializers.CharField() enrollment = serializers.DictField() user_has_access = serializers.BooleanField() + user_has_staff_access = serializers.BooleanField() tabs = serializers.SerializerMethodField() verified_mode = serializers.SerializerMethodField() diff --git a/openedx/core/djangoapps/courseware_api/views.py b/openedx/core/djangoapps/courseware_api/views.py index 59838012bc..a056d2c22e 100644 --- a/openedx/core/djangoapps/courseware_api/views.py +++ b/openedx/core/djangoapps/courseware_api/views.py @@ -10,6 +10,7 @@ from rest_framework.response import Response from rest_framework.views import APIView from lms.djangoapps.course_api.api import course_detail +from lms.djangoapps.courseware.access import has_access from lms.djangoapps.courseware.courses import allow_public_access from lms.djangoapps.courseware.module_render import get_module_by_usage_id from student.models import CourseEnrollment @@ -105,6 +106,7 @@ class CoursewareInformation(RetrieveAPIView): else: user_has_access = True overview.user_has_access = user_has_access + overview.user_has_staff_access = has_access(self.request.user, 'staff', overview).has_access return overview def get_serializer_context(self):