Просмотр исходного кода

Include user staff and superuser status flags in user_acl

rafalp 6 лет назад
Родитель
Сommit
8ef7c58919
2 измененных файлов с 18 добавлено и 0 удалено
  1. 16 0
      misago/acl/tests/test_getting_user_acl.py
  2. 2 0
      misago/acl/useracl.py

+ 16 - 0
misago/acl/tests/test_getting_user_acl.py

@@ -21,6 +21,14 @@ class GettingUserACLTests(TestCase):
         assert acl["is_authenticated"] is True
         assert acl["is_anonymous"] is False
 
+    def test_user_acl_includes_staff_and_superuser_false_status(self):
+        user = User.objects.create_user('Bob', 'bob@bob.com')
+        acl = get_user_acl(user, cache_versions)
+
+        assert acl
+        assert acl["is_staff"] is False
+        assert acl["is_superuser"] is False
+
     def test_getter_returns_anonymous_user_acl(self):
         user = AnonymousUser()
         acl = get_user_acl(user, cache_versions)
@@ -30,6 +38,14 @@ class GettingUserACLTests(TestCase):
         assert acl["is_authenticated"] is False
         assert acl["is_anonymous"] is True
 
+    def test_superuser_acl_includes_staff_and_superuser_true_status(self):
+        user = User.objects.create_superuser('Bob', 'bob@bob.com', 'Pass.123')
+        acl = get_user_acl(user, cache_versions)
+
+        assert acl
+        assert acl["is_staff"] is True
+        assert acl["is_superuser"] is True
+
     @patch('django.core.cache.cache.get', return_value=dict())
     def test_getter_returns_acl_from_cache(self, cache_get):
         user = AnonymousUser()

+ 2 - 0
misago/acl/useracl.py

@@ -12,4 +12,6 @@ def get_user_acl(user, cache_versions):
     user_acl["user_id"] = user.id
     user_acl["is_authenticated"] = bool(user.is_authenticated)
     user_acl["is_anonymous"] = bool(user.is_anonymous)
+    user_acl["is_staff"] = user.is_staff
+    user_acl["is_superuser"] = user.is_superuser
     return user_acl