|
12 | 12 | from baseapp_referrals.utils import get_referral_code
|
13 | 13 | from django.conf import settings
|
14 | 14 | from django.contrib.auth import get_user_model
|
| 15 | +from django.contrib.auth.models import Permission |
15 | 16 | from django.utils import timezone
|
16 | 17 |
|
17 | 18 | User = get_user_model()
|
@@ -294,3 +295,29 @@ def test_confirm_email_invalid_token(self, client, data):
|
294 | 295 | def test_confirm_email_no_user(self, client, data):
|
295 | 296 | r = client.post(self.reverse(kwargs={"pk": self.user.pk + 1}), data)
|
296 | 297 | h.responseBadRequest(r)
|
| 298 | + |
| 299 | + |
| 300 | +class TestUserPermission(ApiMixin): |
| 301 | + view_name = "users-permissions" |
| 302 | + |
| 303 | + def test_can_get_their_permission(self, user_client): |
| 304 | + perm = Permission.objects.create(codename="test_perm", name="Test", content_type_id=1) |
| 305 | + user_client.user.user_permissions.add(perm) |
| 306 | + r = user_client.get(self.reverse()) |
| 307 | + h.responseOk(r) |
| 308 | + |
| 309 | + def test_guest_cannot_get_permission(self, client): |
| 310 | + r = client.get(self.reverse()) |
| 311 | + h.responseUnauthorized(r) |
| 312 | + |
| 313 | + def test_user_can_check_their_permission(self, user_client): |
| 314 | + perm = Permission.objects.create(codename="test_perm", name="Test", content_type_id=1) |
| 315 | + user_client.user.user_permissions.add(perm) |
| 316 | + r = user_client.post(self.reverse(), {"perm": "admin.test_perm"}) |
| 317 | + h.responseOk(r) |
| 318 | + assert r.data["has_perm"] |
| 319 | + |
| 320 | + def test_user_get_false_without_permission(self, user_client): |
| 321 | + r = user_client.post(self.reverse(), {"perm": "admin.test_perm"}) |
| 322 | + h.responseOk(r) |
| 323 | + assert not r.data["has_perm"] |
0 commit comments