Skip to content
Snippets Groups Projects
views.py 1.07 KiB
Newer Older
  • Learn to ignore specific revisions
  • from rest_framework.response import Response
    from rest_framework import viewsets
    from rest_framework.decorators import list_route
    
    from rest_auth.registration.views import RegisterView as BaseRegisterView
    from allauth.account.adapter import get_adapter
    
    from . import models
    from . import serializers
    
    
    class RegisterView(BaseRegisterView):
    
        def create(self, request, *args, **kwargs):
            if not self.is_open_for_signup(request):
                r = {
                    'detail': 'Registration has been disabled',
                }
                return Response(r, status=403)
            return super().create(request, *args, **kwargs)
    
        def is_open_for_signup(self, request):
            return get_adapter().is_open_for_signup(request)
    
    
    class UserViewSet(viewsets.GenericViewSet):
        queryset = models.User.objects.all()
        serializer_class = serializers.UserSerializer
    
        @list_route(methods=['get'])
        def me(self, request, *args, **kwargs):
            """Return information about the current user"""
            serializer = self.serializer_class(request.user)
            return Response(serializer.data)