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):
|
def create(self, validated_data):
|
||||||
role = validated_data.pop('role', 'trainer')
|
role = validated_data.pop('role', 'trainer')
|
||||||
user = User.objects.create_user(**validated_data)
|
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
|
return user
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ from .serializers import (
|
|||||||
UserListSerializer, UserCreateSerializer, UserUpdateSerializer, PasswordChangeSerializer
|
UserListSerializer, UserCreateSerializer, UserUpdateSerializer, PasswordChangeSerializer
|
||||||
)
|
)
|
||||||
from .permissions import HasUserManagementAccess
|
from .permissions import HasUserManagementAccess
|
||||||
|
from wrestleDesk.pagination import StandardResultsSetPagination
|
||||||
|
|
||||||
|
|
||||||
class AuthRateThrottle(AnonRateThrottle):
|
class AuthRateThrottle(AnonRateThrottle):
|
||||||
@@ -106,6 +107,7 @@ def user_preferences(request):
|
|||||||
class UserManagementViewSet(viewsets.ModelViewSet):
|
class UserManagementViewSet(viewsets.ModelViewSet):
|
||||||
queryset = User.objects.all().select_related('profile')
|
queryset = User.objects.all().select_related('profile')
|
||||||
permission_classes = [HasUserManagementAccess]
|
permission_classes = [HasUserManagementAccess]
|
||||||
|
pagination_class = StandardResultsSetPagination
|
||||||
|
|
||||||
def get_serializer_class(self):
|
def get_serializer_class(self):
|
||||||
if self.action == 'create':
|
if self.action == 'create':
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ export default function UsersPage() {
|
|||||||
|
|
||||||
const fetchUsers = async () => {
|
const fetchUsers = async () => {
|
||||||
try {
|
try {
|
||||||
const data = await apiFetch<IUser[]>('/auth/users/', { token: token! })
|
const data = await apiFetch<{ results: IUser[] }>('/auth/users/', { token: token! })
|
||||||
setUsers(data)
|
setUsers(data.results || [])
|
||||||
} catch {
|
} catch {
|
||||||
toast.error('Fehler beim Laden der Benutzer')
|
toast.error('Fehler beim Laden der Benutzer')
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
Reference in New Issue
Block a user