From b3a005f3bfb4a5b7ce2454a7398745f01cef5979 Mon Sep 17 00:00:00 2001 From: Andrej Spielmann Date: Thu, 26 Mar 2026 17:03:38 +0100 Subject: [PATCH] fix(user-management): pagination, duplicate profile creation, type fixes --- backend/auth_app/serializers.py | 3 ++- backend/auth_app/views.py | 2 ++ frontend/src/app/(dashboard)/settings/users/page.tsx | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/backend/auth_app/serializers.py b/backend/auth_app/serializers.py index 0e0ef02..f42fd59 100644 --- a/backend/auth_app/serializers.py +++ b/backend/auth_app/serializers.py @@ -88,7 +88,8 @@ class UserCreateSerializer(serializers.ModelSerializer): def create(self, validated_data): role = validated_data.pop('role', 'trainer') user = User.objects.create_user(**validated_data) - UserProfile.objects.create(user=user, role=role) + user.profile.role = role + user.profile.save(update_fields=['role']) return user diff --git a/backend/auth_app/views.py b/backend/auth_app/views.py index f4c536b..d120703 100644 --- a/backend/auth_app/views.py +++ b/backend/auth_app/views.py @@ -12,6 +12,7 @@ from .serializers import ( UserListSerializer, UserCreateSerializer, UserUpdateSerializer, PasswordChangeSerializer ) from .permissions import HasUserManagementAccess +from wrestleDesk.pagination import StandardResultsSetPagination class AuthRateThrottle(AnonRateThrottle): @@ -106,6 +107,7 @@ def user_preferences(request): class UserManagementViewSet(viewsets.ModelViewSet): queryset = User.objects.all().select_related('profile') permission_classes = [HasUserManagementAccess] + pagination_class = StandardResultsSetPagination def get_serializer_class(self): if self.action == 'create': diff --git a/frontend/src/app/(dashboard)/settings/users/page.tsx b/frontend/src/app/(dashboard)/settings/users/page.tsx index 6916c57..06a0722 100644 --- a/frontend/src/app/(dashboard)/settings/users/page.tsx +++ b/frontend/src/app/(dashboard)/settings/users/page.tsx @@ -41,8 +41,8 @@ export default function UsersPage() { const fetchUsers = async () => { try { - const data = await apiFetch('/auth/users/', { token: token! }) - setUsers(data) + const data = await apiFetch<{ results: IUser[] }>('/auth/users/', { token: token! }) + setUsers(data.results || []) } catch { toast.error('Fehler beim Laden der Benutzer') } finally {