33 lines
980 B
Python
Executable File
33 lines
980 B
Python
Executable File
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)
|