add cli tool to change password

master
tuxcoder 2023-12-30 14:09:42 +01:00
parent 2eea083fe7
commit 17b044b1a2
1 changed files with 16 additions and 1 deletions

View File

@ -7,6 +7,7 @@ from flask_migrate import upgrade
from pathlib import Path from pathlib import Path
from flask import Flask from flask import Flask
from uuid import UUID from uuid import UUID
from getpass import getpass
import logging import logging
import os import os
@ -22,8 +23,11 @@ def entry_point() -> None:
parser_user.set_defaults(func=cli_user) parser_user.set_defaults(func=cli_user)
subparsers_user = parser_user.add_subparsers() subparsers_user = parser_user.add_subparsers()
parser_user_delete = subparsers_user.add_parser('delete') parser_user_delete = subparsers_user.add_parser('delete')
parser_user_delete.add_argument('--id', type=str) parser_user_delete.add_argument('--id', type=str, required=True)
parser_user_delete.set_defaults(func=cli_user_delete) parser_user_delete.set_defaults(func=cli_user_delete)
parser_user_passwd = subparsers_user.add_parser('passwd')
parser_user_passwd.add_argument('--id', type=str, required=True)
parser_user_passwd.set_defaults(func=cli_user_passwd)
parser_signup = subparsers.add_parser('signup') parser_signup = subparsers.add_parser('signup')
parser_signup.add_argument('--signup_id', type=str) parser_signup.add_argument('--signup_id', type=str)
@ -76,6 +80,17 @@ def cli_user_delete(args) -> None:
print(f"user {user.username} - {user.id} deleted") print(f"user {user.username} - {user.id} deleted")
pass pass
def cli_user_passwd(args) -> None:
user = User.query.get(UUID(args.id))
if user is None:
print("user not found")
return
password = getpass("new password: ")
user.change_password(password)
db.session.commit()
print(f"user {user.username} - password changed")
pass
def cli_signup(args) -> None: def cli_signup(args) -> None:
if args.signup_id is not None: if args.signup_id is not None: