From 67bbf46920d88b3f6bba869262aaf69db5c91325 Mon Sep 17 00:00:00 2001 From: ayeshoali Date: Wed, 23 Nov 2022 19:24:47 +0500 Subject: [PATCH 1/2] fix: course_staff and course_admin added in get_course api --- lms/djangoapps/discussion/rest_api/api.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lms/djangoapps/discussion/rest_api/api.py b/lms/djangoapps/discussion/rest_api/api.py index 552460dba6..f7256ceb9f 100644 --- a/lms/djangoapps/discussion/rest_api/api.py +++ b/lms/djangoapps/discussion/rest_api/api.py @@ -28,6 +28,12 @@ from rest_framework.exceptions import PermissionDenied from rest_framework.request import Request from rest_framework.response import Response +from common.djangoapps.student.roles import ( + CourseInstructorRole, + CourseStaffRole, + GlobalStaff, +) + from lms.djangoapps.course_blocks.api import get_course_blocks from lms.djangoapps.courseware.courses import get_course_with_access from lms.djangoapps.courseware.exceptions import CourseAccessRedirect @@ -340,6 +346,8 @@ def get_course(request, course_key): }), "is_group_ta": bool(user_roles & {FORUM_ROLE_GROUP_MODERATOR}), "is_user_admin": request.user.is_staff, + "is_course_staff": CourseStaffRole(course_key).has_user(request.user), + "is_course_admin": CourseInstructorRole(course_key).has_user(request.user), "provider": course_config.provider_type, "enable_in_context": course_config.enable_in_context, "group_at_subsection": course_config.plugin_configuration.get("group_at_subsection", False), From 1363fcb501c1326e0ef3ad5a96d84f05fc3ddd6d Mon Sep 17 00:00:00 2001 From: ayeshoali Date: Thu, 24 Nov 2022 14:04:23 +0500 Subject: [PATCH 2/2] fix: test cases fixed --- lms/djangoapps/discussion/rest_api/api.py | 1 - lms/djangoapps/discussion/rest_api/tests/test_api.py | 2 ++ lms/djangoapps/discussion/rest_api/tests/test_views.py | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/discussion/rest_api/api.py b/lms/djangoapps/discussion/rest_api/api.py index f7256ceb9f..ecadb08d13 100644 --- a/lms/djangoapps/discussion/rest_api/api.py +++ b/lms/djangoapps/discussion/rest_api/api.py @@ -31,7 +31,6 @@ from rest_framework.response import Response from common.djangoapps.student.roles import ( CourseInstructorRole, CourseStaffRole, - GlobalStaff, ) from lms.djangoapps.course_blocks.api import get_course_blocks diff --git a/lms/djangoapps/discussion/rest_api/tests/test_api.py b/lms/djangoapps/discussion/rest_api/tests/test_api.py index aab2be06c2..6d7c2a68fc 100644 --- a/lms/djangoapps/discussion/rest_api/tests/test_api.py +++ b/lms/djangoapps/discussion/rest_api/tests/test_api.py @@ -201,6 +201,8 @@ class GetCourseTest(ForumsEnableMixin, UrlResetMixin, SharedModuleStoreTestCase) 'group_at_subsection': False, 'provider': 'legacy', 'has_moderation_privileges': False, + "is_course_staff": False, + "is_course_admin": False, 'is_group_ta': False, 'is_user_admin': False, 'user_roles': {'Student'}, diff --git a/lms/djangoapps/discussion/rest_api/tests/test_views.py b/lms/djangoapps/discussion/rest_api/tests/test_views.py index 400c1be4aa..66b3e345bd 100644 --- a/lms/djangoapps/discussion/rest_api/tests/test_views.py +++ b/lms/djangoapps/discussion/rest_api/tests/test_views.py @@ -521,6 +521,8 @@ class CourseViewTest(DiscussionAPIViewTestMixin, ModuleStoreTestCase): "allow_anonymous": True, "allow_anonymous_to_peers": False, "has_moderation_privileges": False, + 'is_course_admin': False, + 'is_course_staff': False, "is_group_ta": False, 'is_user_admin': False, "user_roles": ["Student"],