def request_password_reset(kwds): """ Request a password reset. """ email = kwds.get("username") if email: user = User.query.filter_by(email=email).first() if not user: message = "User not found." status_code = 404 else: message = "A password reset request has been sent." status_code = 200 token = create_access_token( user.id, expires_delta=timedelta(hours=2), user_claims={"token_password_reset": True}, ) msg = get_mail_template("forgot_password.html", token=token) send_email.delay("Forgot password", html=msg, recipients=[email]) log = Log(date_requested_password_reset=datetime.utcnow()) user.logs.append(log) db_commit() on_forgot_password.send(user) else: message = "Email required." status_code = 403 return {"message": message, "code": status_code}
def request_password_reset(**kwds): """ Request a password reset. """ email = kwds.get("username") if email: user = User.query.filter_by(email=email).first() if not user: reason = "User not found." status_code = 404 else: reason = "A password reset request has been sent." status_code = 200 token = create_access_token( email, expires_delta=timedelta(hours=2), user_claims={"token_password_reset": True}, ) link_reset = url_for(".password_reset", token=token) msg = get_mail_template( "request_password_reset.html", link_reset=link_reset ) send_email.delay("Forgot password", html=msg, recipients=[email]) log = Log(request_password_reset_at=datetime.utcnow()) user.logs.append(log) db_commit() else: reason = "Email required." status_code = 403 return {"reason": reason, "status_code": status_code}
def login(**kwds): email = kwds.get("email") passw = kwds.get("password") user = User.query.filter_by(email=email).first() if user and user.confirmed and check_password_hash(user.password, passw): login_at = datetime.utcnow() log = Log(login_at=login_at) user.logs.append(log) db_commit(db) access_token = create_access_token(email) return {"access_token": access_token} return {"reason": "Incorrect email or password.", "status_code": 401}
def login(kwds): """ Login and get access token. """ email = kwds.get("username") passw = kwds.get("password") user = User.query.filter_by(email=email).first() if user and user.confirmed and check_password_hash(user.password, passw): login_date = datetime.utcnow() log = Log(login_date=login_date) user.logs.append(log) db_commit() roles = get_user_roles(user) claims = {"roles": roles} access_token = create_access_token(email, user_claims=claims) on_user_logged_in.send(user) return {"access_token": access_token} return {"message": "Incorrect email or password.", "code": 404}
def drop_users(): model = get_object_model("user") model.query.delete() db_commit()