mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-22 06:03:20 +00:00
return 404 when accessing not existing account
This commit is contained in:
parent
58d3a7ee2c
commit
b0884c6b04
@ -1,7 +1,8 @@
|
|||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
|
||||||
|
import pytest
|
||||||
from django.core.management import call_command
|
from django.core.management import call_command
|
||||||
from django.test import TestCase
|
from django.test import Client, TestCase
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.timezone import now
|
from django.utils.timezone import now
|
||||||
from model_bakery import baker, seq
|
from model_bakery import baker, seq
|
||||||
@ -95,3 +96,18 @@ class TestSearchUsersView(TestSearchUsers):
|
|||||||
self.client.force_login(subscriber_user.make())
|
self.client.force_login(subscriber_user.make())
|
||||||
response = self.client.get(reverse("core:search"))
|
response = self.client.get(reverse("core:search"))
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_user_account_not_found(client: Client):
|
||||||
|
client.force_login(baker.make(User, is_superuser=True))
|
||||||
|
user = baker.make(User)
|
||||||
|
res = client.get(reverse("core:user_account", kwargs={"user_id": user.id}))
|
||||||
|
assert res.status_code == 404
|
||||||
|
res = client.get(
|
||||||
|
reverse(
|
||||||
|
"core:user_account_detail",
|
||||||
|
kwargs={"user_id": user.id, "year": 2024, "month": 10},
|
||||||
|
)
|
||||||
|
)
|
||||||
|
assert res.status_code == 404
|
||||||
|
@ -632,6 +632,12 @@ class UserAccountBase(UserTabsMixin, DetailView):
|
|||||||
return super().dispatch(request, *arg, **kwargs)
|
return super().dispatch(request, *arg, **kwargs)
|
||||||
raise PermissionDenied
|
raise PermissionDenied
|
||||||
|
|
||||||
|
def get_object(self, queryset=None):
|
||||||
|
obj = super().get_object(queryset)
|
||||||
|
if not hasattr(obj, "customer"):
|
||||||
|
raise Http404(_("User has no account"))
|
||||||
|
return obj
|
||||||
|
|
||||||
|
|
||||||
class UserAccountView(UserAccountBase):
|
class UserAccountView(UserAccountBase):
|
||||||
"""Display a user's account."""
|
"""Display a user's account."""
|
||||||
@ -671,11 +677,6 @@ class UserAccountDetailView(UserAccountBase, YearMixin, MonthMixin):
|
|||||||
|
|
||||||
template_name = "core/user_account_detail.jinja"
|
template_name = "core/user_account_detail.jinja"
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
|
||||||
if not hasattr(self.get_object(), "customer"):
|
|
||||||
raise Http404(_("This user has no account"))
|
|
||||||
return super().get(request, *args, **kwargs)
|
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
kwargs = super().get_context_data(**kwargs)
|
kwargs = super().get_context_data(**kwargs)
|
||||||
kwargs["profile"] = self.object
|
kwargs["profile"] = self.object
|
||||||
|
Loading…
Reference in New Issue
Block a user