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()
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()
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()
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()
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()
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()
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()
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() )