fix(user-management): pagination, duplicate profile creation, type fixes
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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':
|
||||
|
||||
@@ -41,8 +41,8 @@ export default function UsersPage() {
|
||||
|
||||
const fetchUsers = async () => {
|
||||
try {
|
||||
const data = await apiFetch<IUser[]>('/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 {
|
||||
|
||||
Reference in New Issue
Block a user