|
@@ -112,6 +112,34 @@ class BaseModelBackendTest(object):
|
|
|
self.assertEqual(user.has_perm('auth.test'), True)
|
|
|
self.assertEqual(user.get_all_permissions(), set(['auth.test']))
|
|
|
|
|
|
+ def test_inactive_has_no_permissions(self):
|
|
|
+ """
|
|
|
+ #17903 -- Inactive users shouldn't have permissions in
|
|
|
+ ModelBackend.get_(all|user|group)_permissions().
|
|
|
+ """
|
|
|
+ backend = ModelBackend()
|
|
|
+
|
|
|
+ user = self.UserModel._default_manager.get(pk=self.user.pk)
|
|
|
+ content_type = ContentType.objects.get_for_model(Group)
|
|
|
+ user_perm = Permission.objects.create(name='test', content_type=content_type, codename='test_user')
|
|
|
+ group_perm = Permission.objects.create(name='test2', content_type=content_type, codename='test_group')
|
|
|
+ user.user_permissions.add(user_perm)
|
|
|
+
|
|
|
+ group = Group.objects.create(name='test_group')
|
|
|
+ user.groups.add(group)
|
|
|
+ group.permissions.add(group_perm)
|
|
|
+
|
|
|
+ self.assertEqual(backend.get_all_permissions(user), set(['auth.test_user', 'auth.test_group']))
|
|
|
+ self.assertEqual(backend.get_user_permissions(user), set(['auth.test_user', 'auth.test_group']))
|
|
|
+ self.assertEqual(backend.get_group_permissions(user), set(['auth.test_group']))
|
|
|
+
|
|
|
+ user.is_active = False
|
|
|
+ user.save()
|
|
|
+
|
|
|
+ self.assertEqual(backend.get_all_permissions(user), set())
|
|
|
+ self.assertEqual(backend.get_user_permissions(user), set())
|
|
|
+ self.assertEqual(backend.get_group_permissions(user), set())
|
|
|
+
|
|
|
def test_get_all_superuser_permissions(self):
|
|
|
"""A superuser has all permissions. Refs #14795."""
|
|
|
user = self.UserModel._default_manager.get(pk=self.superuser.pk)
|