Clean up some instructor dash code
This commit is contained in:
@@ -82,7 +82,7 @@ def _change_access(course, user, level, action):
|
|||||||
raise ValueError("unrecognized action '{}'".format(action))
|
raise ValueError("unrecognized action '{}'".format(action))
|
||||||
|
|
||||||
|
|
||||||
def update_forum_role_membership(course_id, user, rolename, action):
|
def update_forum_role(course_id, user, rolename, action):
|
||||||
"""
|
"""
|
||||||
Change forum access of user.
|
Change forum access of user.
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from django_comment_common.models import (Role,
|
|||||||
from instructor.access import (allow_access,
|
from instructor.access import (allow_access,
|
||||||
revoke_access,
|
revoke_access,
|
||||||
list_with_level,
|
list_with_level,
|
||||||
update_forum_role_membership)
|
update_forum_role)
|
||||||
|
|
||||||
|
|
||||||
@override_settings(MODULESTORE=TEST_DATA_MIXED_MODULESTORE)
|
@override_settings(MODULESTORE=TEST_DATA_MIXED_MODULESTORE)
|
||||||
@@ -148,44 +148,44 @@ class TestInstructorAccessForum(ModuleStoreTestCase):
|
|||||||
|
|
||||||
def test_allow(self):
|
def test_allow(self):
|
||||||
user = UserFactory.create()
|
user = UserFactory.create()
|
||||||
update_forum_role_membership(self.course.id, user, FORUM_ROLE_MODERATOR, 'allow')
|
update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'allow')
|
||||||
self.assertIn(user, self.mod_role.users.all())
|
self.assertIn(user, self.mod_role.users.all())
|
||||||
|
|
||||||
def test_allow_twice(self):
|
def test_allow_twice(self):
|
||||||
user = UserFactory.create()
|
user = UserFactory.create()
|
||||||
update_forum_role_membership(self.course.id, user, FORUM_ROLE_MODERATOR, 'allow')
|
update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'allow')
|
||||||
self.assertIn(user, self.mod_role.users.all())
|
self.assertIn(user, self.mod_role.users.all())
|
||||||
update_forum_role_membership(self.course.id, user, FORUM_ROLE_MODERATOR, 'allow')
|
update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'allow')
|
||||||
self.assertIn(user, self.mod_role.users.all())
|
self.assertIn(user, self.mod_role.users.all())
|
||||||
|
|
||||||
@raises(Role.DoesNotExist)
|
@raises(Role.DoesNotExist)
|
||||||
def test_allow_badrole(self):
|
def test_allow_badrole(self):
|
||||||
user = UserFactory.create()
|
user = UserFactory.create()
|
||||||
update_forum_role_membership(self.course.id, user, 'robot-not-a-real-role', 'allow')
|
update_forum_role(self.course.id, user, 'robot-not-a-real-role', 'allow')
|
||||||
|
|
||||||
def test_revoke(self):
|
def test_revoke(self):
|
||||||
user = self.moderators[0]
|
user = self.moderators[0]
|
||||||
update_forum_role_membership(self.course.id, user, FORUM_ROLE_MODERATOR, 'revoke')
|
update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'revoke')
|
||||||
self.assertNotIn(user, self.mod_role.users.all())
|
self.assertNotIn(user, self.mod_role.users.all())
|
||||||
|
|
||||||
def test_revoke_twice(self):
|
def test_revoke_twice(self):
|
||||||
user = self.moderators[0]
|
user = self.moderators[0]
|
||||||
update_forum_role_membership(self.course.id, user, FORUM_ROLE_MODERATOR, 'revoke')
|
update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'revoke')
|
||||||
self.assertNotIn(user, self.mod_role.users.all())
|
self.assertNotIn(user, self.mod_role.users.all())
|
||||||
update_forum_role_membership(self.course.id, user, FORUM_ROLE_MODERATOR, 'revoke')
|
update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'revoke')
|
||||||
self.assertNotIn(user, self.mod_role.users.all())
|
self.assertNotIn(user, self.mod_role.users.all())
|
||||||
|
|
||||||
def test_revoke_notallowed(self):
|
def test_revoke_notallowed(self):
|
||||||
user = UserFactory()
|
user = UserFactory()
|
||||||
update_forum_role_membership(self.course.id, user, FORUM_ROLE_MODERATOR, 'revoke')
|
update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'revoke')
|
||||||
self.assertNotIn(user, self.mod_role.users.all())
|
self.assertNotIn(user, self.mod_role.users.all())
|
||||||
|
|
||||||
@raises(Role.DoesNotExist)
|
@raises(Role.DoesNotExist)
|
||||||
def test_revoke_badrole(self):
|
def test_revoke_badrole(self):
|
||||||
user = self.moderators[0]
|
user = self.moderators[0]
|
||||||
update_forum_role_membership(self.course.id, user, 'robot-not-a-real-role', 'allow')
|
update_forum_role(self.course.id, user, 'robot-not-a-real-role', 'allow')
|
||||||
|
|
||||||
@raises(ValueError)
|
@raises(ValueError)
|
||||||
def test_bad_mode(self):
|
def test_bad_mode(self):
|
||||||
user = UserFactory()
|
user = UserFactory()
|
||||||
update_forum_role_membership(self.course.id, user, FORUM_ROLE_MODERATOR, 'robot-not-a-mode')
|
update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'robot-not-a-mode')
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ from instructor_task.views import get_task_completion_info
|
|||||||
import instructor.enrollment as enrollment
|
import instructor.enrollment as enrollment
|
||||||
from instructor.enrollment import enroll_email, unenroll_email
|
from instructor.enrollment import enroll_email, unenroll_email
|
||||||
from instructor.views.tools import strip_if_string, get_student_from_identifier
|
from instructor.views.tools import strip_if_string, get_student_from_identifier
|
||||||
import instructor.access as access
|
from instructor.access import list_with_level, allow_access, revoke_access, update_forum_role
|
||||||
import analytics.basic
|
import analytics.basic
|
||||||
import analytics.distributions
|
import analytics.distributions
|
||||||
import analytics.csvs
|
import analytics.csvs
|
||||||
@@ -294,9 +294,9 @@ def modify_access(request, course_id):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if action == 'allow':
|
if action == 'allow':
|
||||||
access.allow_access(course, user, rolename)
|
allow_access(course, user, rolename)
|
||||||
elif action == 'revoke':
|
elif action == 'revoke':
|
||||||
access.revoke_access(course, user, rolename)
|
revoke_access(course, user, rolename)
|
||||||
else:
|
else:
|
||||||
return HttpResponseBadRequest("unrecognized action '{}'".format(action))
|
return HttpResponseBadRequest("unrecognized action '{}'".format(action))
|
||||||
|
|
||||||
@@ -352,7 +352,7 @@ def list_course_role_members(request, course_id):
|
|||||||
|
|
||||||
response_payload = {
|
response_payload = {
|
||||||
'course_id': course_id,
|
'course_id': course_id,
|
||||||
rolename: map(extract_user_info, access.list_with_level(
|
rolename: map(extract_user_info, list_with_level(
|
||||||
course, rolename
|
course, rolename
|
||||||
)),
|
)),
|
||||||
}
|
}
|
||||||
@@ -381,7 +381,7 @@ def get_grading_config(request, course_id):
|
|||||||
@ensure_csrf_cookie
|
@ensure_csrf_cookie
|
||||||
@cache_control(no_cache=True, no_store=True, must_revalidate=True)
|
@cache_control(no_cache=True, no_store=True, must_revalidate=True)
|
||||||
@require_level('staff')
|
@require_level('staff')
|
||||||
def get_students_features(request, course_id, csv=False): # pylint: disable=W0613
|
def get_students_features(request, course_id, csv=False): # pylint: disable=W0613, W0621
|
||||||
"""
|
"""
|
||||||
Respond with json which contains a summary of all enrolled students profile information.
|
Respond with json which contains a summary of all enrolled students profile information.
|
||||||
|
|
||||||
@@ -882,7 +882,7 @@ def update_forum_role_membership(request, course_id):
|
|||||||
return HttpResponseBadRequest("Cannot revoke instructor forum admin privelages.")
|
return HttpResponseBadRequest("Cannot revoke instructor forum admin privelages.")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
access.update_forum_role_membership(course_id, user, rolename, action)
|
update_forum_role(course_id, user, rolename, action)
|
||||||
except Role.DoesNotExist:
|
except Role.DoesNotExist:
|
||||||
return HttpResponseBadRequest("Role does not exist.")
|
return HttpResponseBadRequest("Role does not exist.")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user