Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.40 KB | None | 0 0
  1. from rest_framework.views import APIView
  2. from rest_framework.permissions import AllowAny
  3. from rest_framework import status
  4. from django.core.exceptions import SuspiciousOperation
  5. from django.contrib.auth import authenticate
  6.  
  7.  
  8. class LoginView(APIView):
  9.     permission_classes = (AllowAny, )
  10.  
  11.     def post(self, request):
  12.         username = self.validate_field_value(request.META.get('HTTP_USERNAME'))
  13.         password = self.validate_field_value(request.META.get('HTTP_PASSWORD'))
  14.  
  15.         user = authenticate(username=username, password=password)
  16.  
  17.         try:
  18.             if user.is_active:
  19.                 try:
  20.                     token = user.auth_token.key
  21.                 except AttributeError:
  22.                     # crear token
  23.                     print('usuario no posee token')
  24.                     token = None
  25.                
  26.                 data = {
  27.                     'token': token
  28.                 }
  29.  
  30.                 return Response(data=data, status=status.HTTP_200_OK)
  31.         except AttributeError:
  32.             '''
  33.            Tota la lógica pasa al middleware
  34.            '''
  35.             return Response(status.HTTP_403_FORBIDDEN)
  36.    
  37.     def validate_field_value(self, value):
  38.         if not value:
  39.             data = {
  40.                 'message': 'Faltan attributos en la petición'
  41.             }
  42.             raise SuspiciousOperation(data)
  43.        
  44.         return value
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement