25 lines
869 B
Python
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)
|