|
4 | 4 | from json import loads
|
5 | 5 |
|
6 | 6 | from django.urls.base import reverse
|
| 7 | +from guardian.shortcuts import assign_perm |
7 | 8 | from rest_framework.test import APITestCase
|
8 | 9 |
|
9 | 10 | from authentik.brands.models import Brand
|
@@ -78,8 +79,59 @@ def test_filter_is_superuser(self):
|
78 | 79 | def test_list_with_groups(self):
|
79 | 80 | """Test listing with groups"""
|
80 | 81 | self.client.force_login(self.admin)
|
81 |
| - response = self.client.get(reverse("authentik_api:user-list"), {"include_groups": "true"}) |
| 82 | + response = self.client.get( |
| 83 | + reverse("authentik_api:user-list"), |
| 84 | + data={"include_groups": True}, |
| 85 | + ) |
| 86 | + self.assertEqual(response.status_code, 200) |
| 87 | + |
| 88 | + def test_list_with_passwords(self): |
| 89 | + """Test listing with groups""" |
| 90 | + User.objects.all().delete() |
| 91 | + admin = create_test_admin_user() |
| 92 | + self.client.force_login(admin) |
| 93 | + |
| 94 | + response = self.client.get( |
| 95 | + reverse("authentik_api:user-list"), |
| 96 | + data={"include_password": "true"}, |
| 97 | + ) |
| 98 | + self.assertEqual(response.status_code, 200) |
| 99 | + body = loads(response.content) |
| 100 | + self.assertIsNotNone(body["results"][0].get("password")) |
| 101 | + |
| 102 | + def test_list_with_passwords_no_perm(self): |
| 103 | + """Test listing with groups not having permissions""" |
| 104 | + User.objects.all().delete() |
| 105 | + user = create_test_user() |
| 106 | + assign_perm("authentik_core.view_user", user) |
| 107 | + self.client.force_login(user) |
| 108 | + response = self.client.get( |
| 109 | + reverse("authentik_api:user-list"), |
| 110 | + data={ |
| 111 | + "include_password": "true", |
| 112 | + }, |
| 113 | + ) |
82 | 114 | self.assertEqual(response.status_code, 200)
|
| 115 | + body = loads(response.content) |
| 116 | + self.assertIsNone(body["results"][0].get("password")) |
| 117 | + |
| 118 | + def test_list_with_passwords_with_perm(self): |
| 119 | + """Test listing with groups not having permissions""" |
| 120 | + User.objects.all().delete() |
| 121 | + user = create_test_user() |
| 122 | + assign_perm("authentik_core.view_user", user) |
| 123 | + assign_perm("authentik_core.view_password_hashes", user) |
| 124 | + self.client.force_login(user) |
| 125 | + |
| 126 | + response = self.client.get( |
| 127 | + reverse("authentik_api:user-list"), |
| 128 | + date={ |
| 129 | + "include_password": "true", |
| 130 | + }, |
| 131 | + ) |
| 132 | + self.assertEqual(response.status_code, 200) |
| 133 | + body = loads(response.content) |
| 134 | + self.assertIsNotNone(body["results"][0].get("password")) |
83 | 135 |
|
84 | 136 | def test_recovery_no_flow(self):
|
85 | 137 | """Test user recovery link (no recovery flow set)"""
|
|
0 commit comments