auth.py 830 B

1234567891011121314151617181920212223
  1. from django.contrib import auth
  2. from django.views.decorators.csrf import csrf_protect
  3. from rest_framework import status
  4. from rest_framework.decorators import api_view, permission_classes
  5. from rest_framework.response import Response
  6. from misago.users.forms.auth import AuthenticationForm
  7. from misago.users.rest_permissions import UnbannedAnonOnly
  8. from misago.users.serializers import AuthenticatedUserSerializer
  9. @api_view(['POST'])
  10. @permission_classes((UnbannedAnonOnly,))
  11. @csrf_protect
  12. def login(request):
  13. form = AuthenticationForm(request, data=request.data)
  14. if form.is_valid():
  15. auth.login(request, form.user_cache)
  16. return Response(AuthenticatedUserSerializer(form.user_cache).data)
  17. else:
  18. return Response(form.get_errors_dict(),
  19. status=status.HTTP_400_BAD_REQUEST)