Skip to content
Snippets Groups Projects
views.py 1.16 KiB
Newer Older
  • Learn to ignore specific revisions
  • from rest_framework import viewsets
    from rest_framework import permissions
    
    from rest_framework.response import Response
    
    from rest_framework.decorators import action
    
    Bodor Máté's avatar
    Bodor Máté committed
    from common.permissions import IsSafeOrPatch
    
    
    from . import models
    from . import serializers
    
    
    class ProfileViewSet(viewsets.ModelViewSet):
    
        serializer_class = serializers.ProfileSerializer_User
    
    Bodor Máté's avatar
    Bodor Máté committed
        permission_classes = (permissions.IsAuthenticated, IsSafeOrPatch)
    
        def get_serializer_class(self):
            user = self.request.user
            if user.profile.role == 'Staff':
                return serializers.ProfileSerializer_Staff
            return serializers.ProfileSerializer_User
    
    
        def get_queryset(self):
            user = self.request.user
    
    Bodor Máté's avatar
    Bodor Máté committed
            if user.profile.role == 'Staff':
    
                role = self.request.query_params.get("role", None)
                if role is not None:
                    return models.Profile.objects.filter(role=role)
    
                return models.Profile.objects.all()
    
            return models.Profile.objects.filter(pk=user.profile.id)
    
        def me(self, request):
            serializer = self.serializer_class(request.user.profile)
            return Response(serializer.data)