Commit 52dd2734 by Waqas Khalid

Merge pull request #5363 from mlkwaqas/waqas/tnl315-cannot-remove-discussion-admin

Course admin should be able to de-admin dicussion admins
parents 3cdfdae8 d0d225d8
...@@ -1299,35 +1299,22 @@ class TestInstructorAPILevelsAccess(ModuleStoreTestCase, LoginEnrollmentTestCase ...@@ -1299,35 +1299,22 @@ class TestInstructorAPILevelsAccess(ModuleStoreTestCase, LoginEnrollmentTestCase
# Seed forum roles for course. # Seed forum roles for course.
seed_permissions_roles(self.course.id) seed_permissions_roles(self.course.id)
# Test add discussion admin with email. for user in [self.instructor, self.other_user]:
self.assert_update_forum_role_membership(self.other_user.email, "Administrator", "allow") for identifier_attr in [user.email, user.username]:
for rolename in ["Administrator", "Moderator", "Community TA"]:
for action in ["allow", "revoke"]:
self.assert_update_forum_role_membership(user, identifier_attr, rolename, action)
# Test revoke discussion admin with email. def assert_update_forum_role_membership(self, current_user, identifier, rolename, action):
self.assert_update_forum_role_membership(self.other_user.email, "Administrator", "revoke")
# Test add discussion moderator with username.
self.assert_update_forum_role_membership(self.other_user.username, "Moderator", "allow")
# Test revoke discussion moderator with username.
self.assert_update_forum_role_membership(self.other_user.username, "Moderator", "revoke")
# Test add discussion community TA with email.
self.assert_update_forum_role_membership(self.other_user.email, "Community TA", "allow")
# Test revoke discussion community TA with username.
self.assert_update_forum_role_membership(self.other_user.username, "Community TA", "revoke")
def assert_update_forum_role_membership(self, unique_student_identifier, rolename, action):
""" """
Test update forum role membership. Test update forum role membership.
Get unique_student_identifier, rolename and action and update forum role. Get unique_student_identifier, rolename and action and update forum role.
""" """
url = reverse('update_forum_role_membership', kwargs={'course_id': self.course.id.to_deprecated_string()}) url = reverse('update_forum_role_membership', kwargs={'course_id': self.course.id.to_deprecated_string()})
response = self.client.get( response = self.client.get(
url, url,
{ {
'unique_student_identifier': unique_student_identifier, 'unique_student_identifier': identifier,
'rolename': rolename, 'rolename': rolename,
'action': action, 'action': action,
} }
...@@ -1336,7 +1323,7 @@ class TestInstructorAPILevelsAccess(ModuleStoreTestCase, LoginEnrollmentTestCase ...@@ -1336,7 +1323,7 @@ class TestInstructorAPILevelsAccess(ModuleStoreTestCase, LoginEnrollmentTestCase
# Status code should be 200. # Status code should be 200.
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
user_roles = self.other_user.roles.filter(course_id=self.course.id).values_list("name", flat=True) user_roles = current_user.roles.filter(course_id=self.course.id).values_list("name", flat=True)
if action == 'allow': if action == 'allow':
self.assertIn(rolename, user_roles) self.assertIn(rolename, user_roles)
elif action == 'revoke': elif action == 'revoke':
......
...@@ -1495,10 +1495,6 @@ def update_forum_role_membership(request, course_id): ...@@ -1495,10 +1495,6 @@ def update_forum_role_membership(request, course_id):
)) ))
user = get_student_from_identifier(unique_student_identifier) user = get_student_from_identifier(unique_student_identifier)
target_is_instructor = has_access(user, 'instructor', course)
# cannot revoke instructor
if target_is_instructor and action == 'revoke' and rolename == FORUM_ROLE_ADMINISTRATOR:
return HttpResponseBadRequest("Cannot revoke instructor forum admin privileges.")
try: try:
update_forum_role(course_id, user, rolename, action) update_forum_role(course_id, user, rolename, action)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment