コード例 #1
0
ファイル: views.py プロジェクト: marcelsenarios/edx-platform
    def post(self, request, course_id, rolename):
        """
        Implement a handler for the POST method.
        """
        kwargs = self._get_request_kwargs(course_id, rolename)
        form = CourseDiscussionRolesForm(kwargs, request_user=request.user)
        if not form.is_valid():
            raise ValidationError(form.errors)

        course_id = form.cleaned_data['course_key']
        rolename = form.cleaned_data['rolename']

        serializer = DiscussionRolesSerializer(data=request.data)
        if not serializer.is_valid():
            raise ValidationError(serializer.errors)

        action = serializer.validated_data['action']
        user = serializer.validated_data['user']
        try:
            update_forum_role(course_id, user, rolename, action)
        except Role.DoesNotExist:
            raise ValidationError(u"Role '{}' does not exist".format(rolename))

        role = form.cleaned_data['role']
        data = {'course_id': course_id, 'users': role.users.all()}
        context = {
            'course_discussion_settings':
            get_course_discussion_settings(course_id)
        }
        serializer = DiscussionRolesListSerializer(data, context=context)
        return Response(serializer.data)
コード例 #2
0
 def test_revoke_badrole(self):
     user = self.moderators[0]
     with pytest.raises(Role.DoesNotExist):
         update_forum_role(self.course.id, user, 'robot-not-a-real-role', 'allow')
コード例 #3
0
 def test_bad_mode(self):
     user = UserFactory()
     with pytest.raises(ValueError):
         update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'robot-not-a-mode')
コード例 #4
0
 def test_revoke_twice(self):
     user = self.moderators[0]
     update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'revoke')
     self.assertNotIn(user, self.mod_role.users.all())
     update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'revoke')
     self.assertNotIn(user, self.mod_role.users.all())
コード例 #5
0
 def test_revoke_notallowed(self):
     user = UserFactory()
     update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'revoke')
     self.assertNotIn(user, self.mod_role.users.all())
コード例 #6
0
 def test_allow_twice(self):
     user = UserFactory.create()
     update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'allow')
     self.assertIn(user, self.mod_role.users.all())
     update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'allow')
     self.assertIn(user, self.mod_role.users.all())
コード例 #7
0
 def test_allow_badrole(self):
     user = UserFactory.create()
     with pytest.raises(Role.DoesNotExist):
         update_forum_role(self.course.id, user, 'robot-not-a-real-role', 'allow')
コード例 #8
0
ファイル: test_access.py プロジェクト: sekz/edx-platform
 def test_revoke(self):
     user = self.moderators[0]
     update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'revoke')
     assert user not in self.mod_role.users.all()
コード例 #9
0
ファイル: test_access.py プロジェクト: sekz/edx-platform
 def test_allow(self):
     user = UserFactory.create()
     update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'allow')
     assert user in self.mod_role.users.all()
コード例 #10
0
 def test_bad_mode(self):
     user = UserFactory()
     update_forum_role(self.course.id, user, FORUM_ROLE_MODERATOR, 'robot-not-a-mode')
コード例 #11
0
 def test_revoke_badrole(self):
     user = self.moderators[0]
     update_forum_role(self.course.id, user, 'robot-not-a-real-role', 'allow')
コード例 #12
0
 def test_allow_badrole(self):
     user = UserFactory.create()
     update_forum_role(self.course.id, user, 'robot-not-a-real-role', 'allow')