Guest User

Untitled

a guest
Feb 18th, 2016
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. class LoginView(views.APIView):
  2.  
  3. def post(self, request):
  4. data = json.loads(request.body)
  5. if request.user.is_authenticated():
  6. return Response({
  7. 'status': 'Unauthorized',
  8. 'message': 'Already Logged In'
  9. }, status=status.HTTP_302_FOUND)
  10. email = data.get('email', None)
  11. password = data.get('password', None)
  12. remember_me = data.get('remember_me', None)
  13. user = authenticate(email=email, password=password)
  14. if user:
  15. login(request, user)
  16. serialized_data = UserSerializer(user)
  17. if remember_me is None:
  18. request.session.set_expiry(0)
  19. return Response(serialized_data.data)
  20. else:
  21. return Response({
  22. 'status': 'Not authorized',
  23. 'message': 'Invalid Login Details'
  24. }, status=status.HTTP_401_UNAUTHORIZED)
  25.  
  26.  
  27. class LogoutView(views.APIView):
  28.  
  29. def post(self, request):
  30. if request.user.is_authenticated():
  31. logout(request)
  32. return Response({
  33. 'status': 'Anonymous',
  34. 'message': 'Successfully Logged Out'
  35. }, status=status.HTTP_204_NO_CONTENT)
  36. return Response({
  37. 'status': 'InvalidRequest',
  38. 'message': 'User not logged In'
  39. }, status.HTTP_401_UNAUTHORIZED)
  40.  
  41.  
  42. class DetailView(views.APIView):
  43.  
  44. def get(self, request):
  45. if request.user.is_authenticated():
  46. return Response(UserSerializer(request.user).data)
  47. return Response({'status': 'Invalid Request', 'message': 'Login to View Details'},
  48. status=status.HTTP_401_UNAUTHORIZED)
  49.  
  50.  
  51. class UserRegistrationView(viewsets.ModelViewSet):
  52. lookup_field = 'email'
  53. queryset = User.objects.all()
  54. serializer_class = UserSerializer
  55.  
  56. def get_permissions(self):
  57. if self.request.method in permissions.SAFE_METHODS:
  58. return (permissions.AllowAny(),)
  59.  
  60. if self.request.method == 'POST':
  61. return (permissions.AllowAny(),)
  62.  
  63. return (permissions.IsAuthenticated(),)
  64.  
  65. def create(self, request):
  66. serializer = self.serializer_class(data=request.data)
  67.  
  68. if serializer.is_valid():
  69. print serializer.validated_data
  70. User.objects.create_user(**serializer.validated_data)
  71.  
  72. return Response(serializer.validated_data, status=status.HTTP_201_CREATED)
  73.  
  74. return Response({
  75. 'status': 'Bad request',
  76. 'message': 'Account could not be created with received data.'
  77. }, status=status.HTTP_404_NOT_FOUND)
Add Comment
Please, Sign In to add comment