Exemplo n.º 1
0
 def test_cannot_be_saved_without_forum_if_the_permission_is_not_global(self):
     # Run & check
     with pytest.raises(ValidationError):
         perm = ForumPermissionFactory.create(is_global=False)
         user_perm = UserForumPermissionFactory.build(
             permission=perm)
         user_perm.clean()
Exemplo n.º 2
0
 def test_cannot_be_saved_without_forum_if_the_permission_is_not_global(
         self):
     # Run & check
     with pytest.raises(ValidationError):
         perm = ForumPermissionFactory.create(is_global=False)
         user_perm = UserForumPermissionFactory.build(permission=perm)
         user_perm.clean()
Exemplo n.º 3
0
 def test_cannot_target_an_anonymous_user_and_a_registered_user(self):
     # Setup
     user = UserFactory.create()
     # Run & check
     with pytest.raises(ValidationError):
         perm = ForumPermissionFactory.create(is_local=True, is_global=True)
         user_perm = UserForumPermissionFactory.build(
             permission=perm, user=user, anonymous_user=True)
         user_perm.clean()
Exemplo n.º 4
0
    def test_editpermission_index_view_can_copy_permissions_from_another_forum(
            self):
        # Setup
        group = GroupFactory.create()
        model = self.model

        UserForumPermissionFactory.create(
            permission=ForumPermission.objects.get(codename='can_see_forum'),
            forum=self.sub_forum_1,
            user=self.user,
            has_perm=False)
        UserForumPermissionFactory.create(
            permission=ForumPermission.objects.get(codename='can_read_forum'),
            forum=self.sub_forum_1,
            user=self.user,
            has_perm=True)
        UserForumPermissionFactory.create(
            permission=ForumPermission.objects.get(
                codename='can_start_new_topics'),
            forum=self.sub_forum_1,
            user=self.user,
            has_perm=False)
        GroupForumPermissionFactory.create(
            permission=ForumPermission.objects.get(
                codename='can_start_new_topics'),
            forum=self.sub_forum_1,
            group=group,
            has_perm=False)

        raw_url = 'admin:{}_{}_editpermission_index'.format(
            model._meta.app_label, self._get_module_name(model._meta))
        # Run
        url = reverse(raw_url, kwargs={'forum_id': self.top_level_cat.id})
        response = self.client.post(url, {'forum': self.sub_forum_1.id})
        # Check
        assert response.status_code == 200
        assert UserForumPermission.objects.filter(
            permission__codename='can_see_forum',
            forum=self.top_level_cat,
            user=self.user,
            has_perm=False).exists()
        assert UserForumPermission.objects.filter(
            permission__codename='can_read_forum',
            forum=self.top_level_cat,
            user=self.user,
            has_perm=True).exists()
        assert UserForumPermission.objects.filter(
            permission__codename='can_start_new_topics',
            forum=self.top_level_cat,
            user=self.user,
            has_perm=False).exists()
        assert GroupForumPermission.objects.filter(
            permission__codename='can_start_new_topics',
            forum=self.top_level_cat,
            group=group,
            has_perm=False).exists()
Exemplo n.º 5
0
 def test_editpermission_form_can_update_user_permissions(self):
     # Setup
     UserForumPermissionFactory.create(
         permission=ForumPermission.objects.get(codename='can_see_forum'),
         forum=self.top_level_cat,
         user=self.user, has_perm=False)
     UserForumPermissionFactory.create(
         permission=ForumPermission.objects.get(codename='can_read_forum'),
         forum=self.top_level_cat,
         user=self.user, has_perm=True)
     UserForumPermissionFactory.create(
         permission=ForumPermission.objects.get(codename='can_start_new_topics'),
         forum=self.top_level_cat,
         user=self.user, has_perm=False)
     model = self.model
     raw_url = 'admin:{}_{}_editpermission_user'.format(model._meta.app_label, self._get_module_name(model._meta))
     post_data = {
         'can_see_forum': 'granted',
         'can_read_forum': 'not-granted',
         'can_start_new_topics': 'not-set',
         'can_reply_to_topics': 'not-set',
         'can_post_announcements': 'not-set',
         'can_post_stickies': 'not-set',
         'can_delete_own_posts': 'not-set',
         'can_edit_own_posts': 'not-set',
         'can_post_without_approval': 'not-set',
         'can_create_polls': 'not-set',
         'can_vote_in_polls': 'not-set',
         'can_attach_file': 'not-set',
         'can_download_file': 'not-set',
         'can_lock_topics': 'not-set',
         'can_edit_posts': 'not-set',
         'can_delete_posts': 'not-set',
         'can_move_posts': 'not-set',
         'can_approve_posts': 'not-set',
     }
     # Run
     url = reverse(raw_url, kwargs={
         'forum_id': self.top_level_cat.id, 'user_id': self.user.id})
     response = self.client.post(url, post_data)
     # Check
     assert response.status_code == 200
     granted_perm = UserForumPermission.objects.filter(
         permission__codename='can_see_forum', has_perm=True,
         user=self.user, forum=self.top_level_cat)
     assert granted_perm.exists()
     not_granted_perm = UserForumPermission.objects.filter(
         permission__codename='can_read_forum', has_perm=False,
         user=self.user, forum=self.top_level_cat)
     assert not_granted_perm.exists()
Exemplo n.º 6
0
 def test_editpermission_form_can_update_user_permissions(self):
     # Setup
     UserForumPermissionFactory.create(
         permission=ForumPermission.objects.get(codename='can_see_forum'),
         forum=self.top_level_cat,
         user=self.user, has_perm=False)
     UserForumPermissionFactory.create(
         permission=ForumPermission.objects.get(codename='can_read_forum'),
         forum=self.top_level_cat,
         user=self.user, has_perm=True)
     UserForumPermissionFactory.create(
         permission=ForumPermission.objects.get(codename='can_start_new_topics'),
         forum=self.top_level_cat,
         user=self.user, has_perm=False)
     model = self.model
     raw_url = 'admin:{}_{}_editpermission_user'.format(
         model._meta.app_label, self._get_module_name(model._meta))
     post_data = {
         'can_see_forum': 'granted',
         'can_read_forum': 'not-granted',
         'can_start_new_topics': 'not-set',
         'can_reply_to_topics': 'not-set',
         'can_post_announcements': 'not-set',
         'can_post_stickies': 'not-set',
         'can_delete_own_posts': 'not-set',
         'can_edit_own_posts': 'not-set',
         'can_post_without_approval': 'not-set',
         'can_create_polls': 'not-set',
         'can_vote_in_polls': 'not-set',
         'can_attach_file': 'not-set',
         'can_download_file': 'not-set',
         'can_lock_topics': 'not-set',
         'can_edit_posts': 'not-set',
         'can_delete_posts': 'not-set',
         'can_approve_posts': 'not-set',
     }
     # Run
     url = reverse(raw_url, kwargs={
         'forum_id': self.top_level_cat.id, 'user_id': self.user.id})
     response = self.client.post(url, post_data)
     # Check
     assert response.status_code == 200
     granted_perm = UserForumPermission.objects.filter(
         permission__codename='can_see_forum', has_perm=True,
         user=self.user, forum=self.top_level_cat)
     assert granted_perm.exists()
     not_granted_perm = UserForumPermission.objects.filter(
         permission__codename='can_read_forum', has_perm=False,
         user=self.user, forum=self.top_level_cat)
     assert not_granted_perm.exists()
Exemplo n.º 7
0
    def test_editpermission_index_view_can_copy_permissions_from_another_forum(self):
        # Setup
        group = GroupFactory.create()
        model = self.model

        UserForumPermissionFactory.create(
            permission=ForumPermission.objects.get(codename='can_see_forum'),
            forum=self.sub_forum_1,
            user=self.user, has_perm=False)
        UserForumPermissionFactory.create(
            permission=ForumPermission.objects.get(codename='can_read_forum'),
            forum=self.sub_forum_1,
            user=self.user, has_perm=True)
        UserForumPermissionFactory.create(
            permission=ForumPermission.objects.get(codename='can_start_new_topics'),
            forum=self.sub_forum_1,
            user=self.user, has_perm=False)
        GroupForumPermissionFactory.create(
            permission=ForumPermission.objects.get(codename='can_start_new_topics'),
            forum=self.sub_forum_1,
            group=group, has_perm=False)

        raw_url = 'admin:{}_{}_editpermission_index'.format(
            model._meta.app_label, self._get_module_name(model._meta))
        # Run
        url = reverse(raw_url, kwargs={'forum_id': self.top_level_cat.id})
        response = self.client.post(url, {'forum': self.sub_forum_1.id})
        # Check
        assert response.status_code == 200
        assert UserForumPermission.objects.filter(
            permission__codename='can_see_forum', forum=self.top_level_cat,
            user=self.user, has_perm=False).exists()
        assert UserForumPermission.objects.filter(
            permission__codename='can_read_forum', forum=self.top_level_cat,
            user=self.user, has_perm=True).exists()
        assert UserForumPermission.objects.filter(
            permission__codename='can_start_new_topics', forum=self.top_level_cat,
            user=self.user, has_perm=False).exists()
        assert GroupForumPermission.objects.filter(
            permission__codename='can_start_new_topics', forum=self.top_level_cat,
            group=group, has_perm=False).exists()
Exemplo n.º 8
0
    def test_editpermission_index_view_do_not_allow_users_to_copy_permissions_if_they_do_not_have_the_required_permissions(self):  # noqa: E501
        group = GroupFactory.create()
        model = self.model

        UserForumPermissionFactory.create(
            permission=ForumPermission.objects.get(codename='can_see_forum'),
            forum=self.sub_forum_1,
            user=self.user,
            has_perm=False
        )
        UserForumPermissionFactory.create(
            permission=ForumPermission.objects.get(codename='can_read_forum'),
            forum=self.sub_forum_1,
            user=self.user,
            has_perm=True
        )
        UserForumPermissionFactory.create(
            permission=ForumPermission.objects.get(codename='can_start_new_topics'),
            forum=self.sub_forum_1,
            user=self.user,
            has_perm=False
        )
        GroupForumPermissionFactory.create(
            permission=ForumPermission.objects.get(codename='can_start_new_topics'),
            forum=self.sub_forum_1,
            group=group,
            has_perm=False
        )

        raw_url = 'admin:{}_{}_editpermission_index'.format(
            model._meta.app_label,
            self._get_module_name(model._meta)
        )

        user = self.create_user(username='******', is_staff=True, is_superuser=False)
        client = Client()
        client.force_login(user)

        url = reverse(raw_url, kwargs={'forum_id': self.top_level_cat.id})
        response = client.post(url, {'forum': self.sub_forum_1.id})

        assert response.status_code == 200
        assert not (
            UserForumPermission
            .objects
            .filter(
                permission__codename='can_see_forum',
                forum=self.top_level_cat,
                user=self.user,
                has_perm=False
            )
            .exists()
        )
        assert not (
            UserForumPermission
            .objects
            .filter(
                permission__codename='can_read_forum',
                forum=self.top_level_cat,
                user=self.user,
                has_perm=True
            )
            .exists()
        )
        assert not (
            UserForumPermission
            .objects
            .filter(
                permission__codename='can_start_new_topics',
                forum=self.top_level_cat,
                user=self.user,
                has_perm=False
            )
            .exists()
        )
        assert not (
            GroupForumPermission
            .objects
            .filter(
                permission__codename='can_start_new_topics',
                forum=self.top_level_cat,
                group=group,
                has_perm=False
            )
            .exists()
        )