def delete(self): args = self.parser['delete'].parse_args() if current_user.authorize(args['password']): user_store.delete_user(current_user) db.session.commit() logout_user() return {'Message': 'Account removed'} else: return errors.InvalidCredentials()
def put(self): args = self.parser['put'].parse_args() if args['new_password'] != args['confirm']: return errors.PasswordConfirmationInvalid() if current_user.authorize(args['password']): current_user.password = args['new_password'] db.session.commit() return {'message': 'Password updated'} else: return errors.InvalidCredentials()
def login(email, password, remember=False): user = user_store.find_user(email=email) if user is None or not user.authorize(password): return errors.InvalidCredentials() if not user.confirmed_at: return errors.UserConfirmationRequired() # If user issues new login after deactivation, reactivate their account if not user.active: user.active = True db.session.commit() login_user(user, remember=remember) return {'token': user.get_auth_token()}
def put(self): args = self.parser['put'].parse_args() user = user_store.find_user(email=args['email']) if not user: return errors.InvalidCredentials() if not user.confirmed_at: msg = send_confirmation_email(user.email, name=user.profile.name) if msg.status_code not in [250]: return errors.CouldNotSendEmail() else: return {'message': 'New confirmation link sent'} else: return errors.UserAlreadyConfirmed()
def patch(self): args = self.parser['patch'].parse_args() user = user_store.find_user(email=args['email']) if user: if not user.confirmed_at: return errors.UserConfirmationRequired() msg = send_recovery_email(args['email']) if msg.status_code in [250]: return {'message': 'Recovery link sent'} else: return errors.CouldNotSendEmail() else: return errors.InvalidCredentials()
def login(email: str, password: str) -> dict: """ Login with identity and credentials """ app.logger.debug(f"Login user with email: {email}, password: {password}") user: User = user_store.find_user(email=email) app.logger.debug(f"Find user: {user}") if user is None or not user.authorize(password): app.logger.debug("Error: InvalidCredentials") return errors.InvalidCredentials() app.logger.debug("User in") token = generate_token(user) response: dict = {'token': token} app.logger.debug(f"Response: {response}") return response