ixg_platform/apps/users/views.py

25 lines
869 B
Python

from rest_framework import viewsets, mixins, permissions
from .models import User
from .serializers import UserSerializer, UserDetailSerializer, UserCreateSerializer
class UserViewSet(mixins.ListModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
viewsets.GenericViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
permission_classes = [permissions.IsAuthenticated]
def get_serializer_class(self):
if self.action == "retrieve":
return UserDetailSerializer
if self.action == "create":
return UserCreateSerializer
return UserSerializer
def get_queryset(self):
user = self.request.user
if user.role == "admin":
return User.objects.all()
return User.objects.filter(id=user.id)