Пример #1
0
    def test_get_all_permissions_mixed_user_and_group(self):
        permissions = Permission.objects.filter(content_type__app_label='auth',
                                                codename__in=[
                                                    'add_user', 'change_user',
                                                    'add_group', 'change_group'
                                                ])
        user = User.objects.create_user(username='******',
                                        password='******')
        group = Group.objects.create(name='group')
        group.user_set.add(user)

        user.user_permissions.add(*permissions.filter(
            content_type__model='user'))
        group.permissions.add(*permissions.filter(content_type__model='group'))

        backend = ChemoPermissionsBackend()

        self.assertEqual(
            set(
                permissions.filter(content_type__model='group').values_list(
                    'codename', flat=True)),
            set(backend.get_all_permissions(user, group)))
        self.assertEqual(
            set(
                permissions.filter(content_type__model='user').values_list(
                    'codename', flat=True)),
            set(backend.get_all_permissions(user, user)))
Пример #2
0
    def test_get_all_permissions_anonymous_user(self):
        class FooBar:
            pass

        obj = FooBar()
        user = AnonymousUser()
        backend = ChemoPermissionsBackend()
        self.assertEqual(set(), backend.get_all_permissions(user, obj))
Пример #3
0
    def test_has_perm_non_model_instance(self):
        class FooBar:
            pass

        obj = FooBar()
        user = User.objects.create_user(username='******',
                                        password='******')
        backend = ChemoPermissionsBackend()
        self.assertFalse(backend.has_perm(user, 'app_label.codename', obj))
Пример #4
0
    def test_get_all_permissions_non_model_instance(self):
        class FooBar:
            pass

        obj = FooBar()
        user = User.objects.create_user(username='******',
                                        password='******')
        backend = ChemoPermissionsBackend()
        self.assertEqual(set(), backend.get_all_permissions(user, obj))
Пример #5
0
    def test_check_permission(self):
        user = User.objects.create_user(username='******',
                                        password='******')

        group = Group.objects.create(name='group')
        group.user_set.add(user)

        access_rule = AccessRule.objects.create(
            ctype_source=ContentType.objects.get_for_model(User),
            ctype_target=ContentType.objects.get_for_model(Group),
            relation_types=[{
                'GROUPS': None
            }])
        perm = Permission.objects.get(content_type__app_label='auth',
                                      codename='add_group')
        group.permissions.add(perm)
        access_rule.permissions.add(perm)

        backend = ChemoPermissionsBackend()
        self.assertTrue(backend.has_perm(user, 'add_group',
                                         group))  # Permission codename only
        self.assertTrue(backend.has_perm(user, 'auth.add_group',
                                         group))  # Full permission string
Пример #6
0
    def test_authenticate(self):
        kwargs = {'username': '******', 'password': '******'}
        User.objects.create_user(**kwargs)

        backend = ChemoPermissionsBackend()
        self.assertIsNone(backend.authenticate(**kwargs))
Пример #7
0
    def test_has_perm_anonymous_user(self):
        user = AnonymousUser()
        group = Group.objects.create(name='group')

        backend = ChemoPermissionsBackend()
        self.assertFalse(backend.has_perm(user, 'app_label.codename', group))