예제 #1
0
 def post(self, request):
     data = request.DATA
     try:
         username = data["username"]
         password = data["password"]
     except KeyError as e:
         return Response({"error": "Invalid object."},
                         status=status.HTTP_400_BAD_REQUEST,
                         exception=True)
     #todo: validate username and password
     user = User.objects.create_user(username = username, password = password)
     new_user = AppUser(user = user, app = request.app)
     try:
         new_user.full_clean()
     except ValidationError as e:
         return Response(e.message_dict, status=status.HTTP_400_BAD_REQUEST)
     
     new_user.save()
     user = authenticate(username=username, password=password)
     login(request, user)
     request.session.save()
     return Response({settings.SESSION_COOKIE_NAME : request.session.session_key,
                       "id" : user.id
                     },
                     status=status.HTTP_201_CREATED)
예제 #2
0
 def post(self, request):
     try:
         #todo: update first_name, last_name and other attributes
         stream = StringIO.StringIO(request.body)
         data = JSONParser().parse(stream)
         username = data["username"]
         password = data["password"]
         
     except Exception as e:
         self.logger.error("Unable to decode object. Error: %s"%str(e))
         return Response({"detail": "Invalid object."},
                         status=status.HTTP_400_BAD_REQUEST,
                         exception=True)
     app =  request.META['app']
     #todo: validate username and password
     user = User.objects.create_user(username = username, password = password)
     new_user = AppUser(user = user, app = app)
     try:
         new_user.full_clean()
     except ValidationError as e:
         return Response(e.message_dict, status=status.HTTP_400_BAD_REQUEST)
     
     new_user.save()
     user = authenticate(username=data["username"], password=data["password"])
     login(request, user)
     request.session.save()
     return Response({settings.SESSION_COOKIE_NAME : request.session.session_key,
                       "id" : user.id
                     },
                     status=status.HTTP_201_CREATED)