def post(self): params = self.request.params api = BoruvkaAuthApi(self.dao) request_dict = {} for key, value in params.items(): request_dict[key] = value user_id, token_value = api.login( payload=request_dict, ) if user_id: self.session['user_id'] = user_id response = exc.HTTPMovedPermanently(location=self.request.application_url) response.set_cookie( name='Token', value=token_value, ) self.session.save() self.session.persist() return response else: # TODO: move translations handling to BaseController translation = list(self.request.accept_language)[0] view = BoruvkaAuthLoginView(translation) view.error = "Unauthorized" response = Response() response.body = view.render() #response = exc.HTTPUnauthorized() return response
def post(self): api = BoruvkaAuthApi(self.dao) response = api.register( payload=self.request.text, ) return 'Response: {0:d}!'.format(response)
def get(self): authorization_header = self.request.authorization token_value = authorization_header[1] api = BoruvkaAuthApi(self.dao) api.invalidate_token(token_value) return "Token invalidated!"
def post(self): api = BoruvkaAuthApi(self.dao) user_id, token_value = api.login( payload=self.request.text, ) return token_value
def get(self): response = exc.HTTPMovedPermanently(location="/") api = BoruvkaAuthApi(self.dao) token_value = self.request.cookies['Token'] api.invalidate_token(token_value) response.delete_cookie('Token') self.session.delete() return response
def post(self): # TODO: check whether passwords match params = self.request.params api = BoruvkaAuthApi(self.dao) response_dict = {} for key, value in params.items(): response_dict[key] = value api_response = api.register( payload=response_dict, ) if api_response: response = exc.HTTPMovedPermanently(location='/auth/login') return response else: response = exc.HTTPUnauthorized() return response
def update_user(self, user_id, payload): user_query = BoruvkaUserQuery(self._dao) settings_query = BoruvkaSettingQuery(self._dao) user = user_query.get_user( id=user_id, ) username = payload['username'] password = payload['password'] if len(password) > 0: user.password = BoruvkaAuthApi.hash_password( username, password, ) self._dao.update(user) image_id = payload['image_id'] image = payload['image'] if isinstance(image, FieldStorage) and "image" in image.type: if image_id == '': # TODO: use random string image_id = user_id with open('webroot/img/user/' + user_id, 'wb') as fout: copyfileobj(image.file, fout, 100000) # TODO, make setting options more generic options = { 'language': payload['language'], 'color': payload['color'], 'image': image_id, } settings_query.set_user_settings( user_id=user_id, options=options, ) return
def __verify_token(self, token): api = BoruvkaAuthApi(self.dao) token_valid = api.verify_token(token) if token_valid: return Response() return exc.HTTPUnauthorized()