From 9b5ab66ace870d8872a01421783757b3901af293 Mon Sep 17 00:00:00 2001 From: Dillon Dumesnil <dillon.dumesnil@gmail.com> Date: Fri, 3 Apr 2020 07:18:38 -0700 Subject: [PATCH] Revert "Update the LMS courses API for staff permissions" --- lms/djangoapps/course_api/api.py | 6 +---- lms/djangoapps/course_api/tests/test_api.py | 26 ++++++--------------- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/lms/djangoapps/course_api/api.py b/lms/djangoapps/course_api/api.py index 245a8d31a2d..8963a27805b 100644 --- a/lms/djangoapps/course_api/api.py +++ b/lms/djangoapps/course_api/api.py @@ -38,13 +38,9 @@ def get_effective_user(requesting_user, target_username): """ if target_username == requesting_user.username: return requesting_user - # This is the default behavior if username is not specified as a query parameter - # which is why the is_staff check is happening inside of here. elif target_username == '': - if requesting_user.is_staff: - return requesting_user return AnonymousUser() - elif target_username and can_view_courses_for_username(requesting_user, target_username): + elif can_view_courses_for_username(requesting_user, target_username): return User.objects.get(username=target_username) else: raise PermissionDenied() diff --git a/lms/djangoapps/course_api/tests/test_api.py b/lms/djangoapps/course_api/tests/test_api.py index f7c6bdd9d5b..dda51d7e7c5 100644 --- a/lms/djangoapps/course_api/tests/test_api.py +++ b/lms/djangoapps/course_api/tests/test_api.py @@ -46,7 +46,7 @@ class CourseDetailTestMixin(CourseApiTestMixin): """ ENABLED_SIGNALS = ['course_published'] - def _make_api_call(self, requesting_user, target_username, course_key): + def _make_api_call(self, requesting_user, target_user, course_key): """ Call the `course_detail` api endpoint to get information on the course identified by `course_key`. @@ -54,7 +54,7 @@ class CourseDetailTestMixin(CourseApiTestMixin): request = Request(self.request_factory.get('/')) request.user = requesting_user with check_mongo_calls(0): - return course_detail(request, target_username, course_key) + return course_detail(request, target_user.username, course_key) class TestGetCourseDetail(CourseDetailTestMixin, SharedModuleStoreTestCase): @@ -71,37 +71,25 @@ class TestGetCourseDetail(CourseDetailTestMixin, SharedModuleStoreTestCase): cls.staff_user = cls.create_user('staff', is_staff=True) def test_get_existing_course(self): - course = self._make_api_call(self.honor_user, self.honor_user.username, self.course.id) - self.verify_course(course) - - def test_get_existing_course_as_anonymous_user(self): - course = self._make_api_call(self.honor_user, '', self.course.id) + course = self._make_api_call(self.honor_user, self.honor_user, self.course.id) self.verify_course(course) def test_get_nonexistent_course(self): course_key = CourseKey.from_string(u'edX/toy/nope') with self.assertRaises(Http404): - self._make_api_call(self.honor_user, self.honor_user.username, course_key) + self._make_api_call(self.honor_user, self.honor_user, course_key) def test_hidden_course_for_honor(self): with self.assertRaises(Http404): - self._make_api_call(self.honor_user, self.honor_user.username, self.hidden_course.id) + self._make_api_call(self.honor_user, self.honor_user, self.hidden_course.id) def test_hidden_course_for_staff(self): - course = self._make_api_call(self.staff_user, self.staff_user.username, self.hidden_course.id) - self.verify_course(course, course_id=u'edX/hidden/2012_Fall') - - def test_hidden_course_for_staff_no_target_username(self): - course = self._make_api_call(self.staff_user, '', self.hidden_course.id) + course = self._make_api_call(self.staff_user, self.staff_user, self.hidden_course.id) self.verify_course(course, course_id=u'edX/hidden/2012_Fall') def test_hidden_course_for_staff_as_honor(self): with self.assertRaises(Http404): - self._make_api_call(self.staff_user, self.honor_user.username, self.hidden_course.id) - - def test_permission_denied(self): - with self.assertRaises(PermissionDenied): - self._make_api_call(self.staff_user, None, self.hidden_course.id) + self._make_api_call(self.staff_user, self.honor_user, self.hidden_course.id) class CourseListTestMixin(CourseApiTestMixin): -- GitLab