update_password.py 874 B

123456789101112131415161718192021222324252627
  1. import argparse
  2. from sqlalchemy import select
  3. from app.core.security import get_password_hash
  4. from app.core.session import session
  5. from app.models import User
  6. def update_user_pwd(email: str, new_password: str):
  7. with session() as db:
  8. user = db.execute(select(User).where(User.email == email)).scalars().first()
  9. if user is not None:
  10. user.hashed_password = get_password_hash(new_password)
  11. db.commit()
  12. else:
  13. raise ValueError(f"User {email} not known !")
  14. if __name__ == "__main__":
  15. parser = argparse.ArgumentParser(
  16. prog="BDLGPlanner password manager",
  17. description="This program help admin to update password from users that forgot it",
  18. )
  19. parser.add_argument("email")
  20. parser.add_argument("password")
  21. args = parser.parse_args()
  22. update_user_pwd(args.email, args.password)