def create(self, request): try: content_type = request.META.get('CONTENT_TYPE', None) logging.debug(content_type) is_json = 'json' in content_type logging.debug("is_json: %s" % is_json) if is_json: raw_data = request.read() data = cjson.decode(raw_data) else: data = self.flatten_dict(request.POST) username = data.get('username', 'empty') password = data.get('password', 'empty') if not settings.TARGET == 'SELF': instance = User(username=username) auth = {'username': username, 'password': password} result = backends.create('Session', auth, instance) if not result: return fail([], errors=[ "Observer does not exist", ], code=404) # Create a user or fetch existin and update password user, created = User.objects.get_or_create( username=result.user.username) user.set_password(password) user.save() # should have returned an Observer instance here observers = Observer.objects.filter( user__username=user.username) # If none were returned we need to create the Observer if observers.count() == 0: observer = Observer(user=user, uuid=result.uuid) observer.save() else: # Observer already exists so we don't have to do # anything since password cache is updated observer = observers[0] return succeed(observer.uuid) else: user = authenticate(username=username, password=password) if user is not None: observer = Observer.objects.get(user=user) return succeed(observer.uuid) else: msg = "Invalid credentials" logging.warn(msg) return fail(msg) except Exception as e: msg = "Internal Server Error" logging.error(unicode(e)) logtb() return error(msg)
def create(self,request): try: content_type = request.META.get('CONTENT_TYPE', None) logging.debug(content_type) is_json = 'json' in content_type logging.debug("is_json: %s" % is_json) if is_json: raw_data = request.read() data = cjson.decode(raw_data) else: data = self.flatten_dict(request.POST) username = data.get('username', 'empty') password = data.get('password','empty') if not settings.TARGET == 'SELF': instance = User(username=username) auth = {'username':username, 'password':password } result = backends.create('Session', auth, instance) if not result: return fail([],errors=["Observer does not exist",],code=404) # Create a user or fetch existin and update password user,created = User.objects.get_or_create(username=result.user.username) user.set_password(password) user.save() # should have returned an Observer instance here observers = Observer.objects.filter(user__username=user.username) # If none were returned we need to create the Observer if observers.count() == 0: observer = Observer( user=user, uuid = result.uuid) observer.save() else: # Observer already exists so we don't have to do # anything since password cache is updated observer = observers[0] return succeed(observer.uuid) else: user = authenticate(username=username, password=password) if user is not None: observer = Observer.objects.get(user=user) return succeed(observer.uuid) else: msg = "Invalid credentials" logging.warn(msg) return fail(msg) except Exception as e: msg = "Internal Server Error" logging.error(unicode(e)) logtb() return error(msg)
def create(self,request): username = request.REQUEST.get('username', 'empty') password = request.REQUEST.get('password','empty') user = authenticate(username=username, password=password) try: success,msg = do_authenticate(request) #if success: # return succeed(msg) if user is not None: observer = Observer.objects.get(user=user) return succeed(observer.uuid) else: logging.warn(msg) return fail(msg) except: msg = "Internal Server Error" logging.error(msg) return error(msg)