diff --git a/src/backend/core/api/viewsets.py b/src/backend/core/api/viewsets.py index 1b58f813..d52c0ad8 100644 --- a/src/backend/core/api/viewsets.py +++ b/src/backend/core/api/viewsets.py @@ -141,7 +141,7 @@ class UserViewSet( """User ViewSet""" permission_classes = [permissions.IsSelf] - queryset = models.User.objects.all() + queryset = models.User.objects.filter(is_active=True) serializer_class = serializers.UserSerializer def get_queryset(self): diff --git a/src/backend/core/tests/test_api_users.py b/src/backend/core/tests/test_api_users.py index d3e6ed48..eb3fd14d 100644 --- a/src/backend/core/tests/test_api_users.py +++ b/src/backend/core/tests/test_api_users.py @@ -154,6 +154,22 @@ def test_api_users_list_query_short_queries(): assert len(response.json()["results"]) == 2 +def test_api_users_list_query_inactive(): + """Inactive users should not be listed.""" + user = factories.UserFactory() + client = APIClient() + client.force_login(user) + + factories.UserFactory(email="john.doe@example.com", is_active=False) + lennon = factories.UserFactory(email="john.lennon@example.com") + + response = client.get("/api/v1.0/users/?q=john.") + + assert response.status_code == 200 + user_ids = [user["id"] for user in response.json()["results"]] + assert user_ids == [str(lennon.id)] + + def test_api_users_retrieve_me_anonymous(): """Anonymous users should not be allowed to list users.""" factories.UserFactory.create_batch(2)