from rest_framework.decorators import action from rest_framework.response import Response from outbo.apps.authentication.models import User from outbo.apps.authentication.serializers import UserSerializer from outbo.apps.core.viewsets import ( MultipleSerializerViewSet, AutoPermissionViewSetMixin, ListModelMixin, RetrieveModelMixin, ) class UserViewSet( RetrieveModelMixin, ListModelMixin, AutoPermissionViewSetMixin, MultipleSerializerViewSet, ): queryset = User.objects.regular_users() serializer_class_set = UserSerializer serializer_map = {**MultipleSerializerViewSet.serializer_map, "me": "Retrieve"} permission_type_map = { **AutoPermissionViewSetMixin.permission_type_map, "me": "read_current", } @action(detail=False, methods=["get"]) def me(self, request): current_user = request.user serializer = self.get_serializer(current_user) return Response(serializer.data)