def get_logged_in_user(new_request): # get the auth token auth_token = new_request.headers.get('Authorization') if auth_token: resp = User.decode_auth_token(auth_token) if not isinstance(resp, str): user = User.find_user_with_id(_id=resp) response_object = { 'status': 'success', 'data': { 'public_id': user['public_id'], 'email': user['email'], 'admin': user['admin'], 'registered_on': str(user['registered_on']) } } return response_object, 200 response_object = {'status': 'fail', 'message': resp} return response_object, 401 else: response_object = { 'status': 'fail', 'message': 'Provide a valid auth token.' } return response_object, 401
def get_logged_in_user(new_request): # get the auth token auth_token = new_request.headers.get('Authorization') if auth_token: resp = User.decode_auth_token(auth_token) if not isinstance(resp, str): user = User.find_user_with_id(_id=resp) return user
def test_decode_auth_token(self): user = ({ 'email': '*****@*****.**', 'password': '******', 'registered_on': datetime.datetime.now() }) test.insert_one(user) item = test.find_one({'email': '*****@*****.**'}) auth_token = User.encode_auth_token(item.get('_id')) self.assertTrue(isinstance(auth_token, bytes)) self.assertTrue( User.decode_auth_token(auth_token.decode("utf-8")) == user['_id'])
def test_encode_auth_token(self): user = ({ 'email': '*****@*****.**', 'password': '******', 'registered_on': datetime.datetime.now() }) user = test.insert_one(user) auth_token = User.encode_auth_token(user.inserted_id) self.assertTrue(isinstance(auth_token, bytes))
def login_user(data): try: user = User.check_user(data) authorized = User.check_password(user, data.get('password')) if not authorized: return UnauthorizedError auth_token = User.encode_auth_token(user.id) if auth_token: response_object = { 'status': 'success', 'message': 'Successfully logged in.', 'Authorization': auth_token.decode() } return response_object, 200 except Exception as e: print(e) return InternalServerError
def save_new_user(data): user = User.check_user(data) if user: return EmailAlreadyExistsError try: save_changes(data) except Exception as e: print(e) raise InternalServerError else: return generate_token(user)
def generate_token(user): try: # generate the auth token auth_token = User.encode_auth_token(user) response_object = { 'status': 'success', 'message': 'Successfully registered.', 'Authorization': auth_token.decode() } return response_object, 201 except Exception as e: response_object = { 'status': 'fail', 'message': 'Some error occurred. Please try again.' } return response_object, 401
def logout_user(data): if data: auth_token = data.split(" ")[1] else: auth_token = '' if auth_token: resp = User.decode_auth_token(auth_token) if not isinstance(resp, str): # mark the token as blacklisted return save_token(token=auth_token) else: response_object = {'status': 'fail', 'message': resp} return response_object, 401 else: response_object = { 'status': 'fail', 'message': 'Provide a valid auth token.' } return response_object, 403
def get_a_user(public_id): return User.get_a_user(public_id)
def get_all_users(): return User.get_all_user()
def save_user(data): user = User() user.store_user(data)
def save_admin(data): user = User() user.store_admin(data)