From c3109b9d2a55351d2884f76bcbe3c6ce24e43dff Mon Sep 17 00:00:00 2001 From: Thomas Hooge Date: Sat, 26 Sep 2026 09:08:10 +0200 Subject: [PATCH] Fixed console password utility ymspass.py --- ymspass.py | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/ymspass.py b/ymspass.py index 3dc2f12..edd941f 100755 --- a/ymspass.py +++ b/ymspass.py @@ -14,15 +14,28 @@ cfg = { 'user': 'yms' } -def set_pass(): - newpass = getpass('New Password: ') +def set_pass(uid): + sql = "SELECT login, displayname FROM user WHERE userid=%s" + db.cur.execute(sql, (uid,)) + user = db.cur.fetchone() + displayname = "{}/{}".format(user[0], user[1]) + try: + newpass = getpass(f"New Password for '{displayname}': ") + except (EOFError, KeyboardInterrupt): + print("Aborted.") + return cryptpass = bcrypt.hashpw(newpass.encode(), bcrypt.gensalt()) - print(cryptpass.decode()) - sql = "UPDATE user SET pass=%s WHERE userid=%s" + db.cur.execute(sql, (cryptpass.decode(), uid)) + db.conn.commit() + print("Ok.") def get_user(): - username = input('Username: ') + try: + username = input('Username: ') + except (EOFError, KeyboardInterrupt): + print("Aborted.") + return -1 sql = "SELECT userid FROM user WHERE login=%s" db.cur.execute(sql, (username,)) row = db.cur.fetchone() @@ -44,8 +57,10 @@ if __name__ == "__main__": cfg['pass'] = config.get('DB', 'pass') db = database.Database(cfg['host'], cfg['db']) if db.connect(cfg['user'], cfg['pass']): - print("Connected to database") - print(get_user()) + print("Connected to database {}@{}".format(cfg['db'], cfg['host'])) + uid = get_user() + if uid >= 0: + set_pass(uid) db.disconnect() else: print("Cannot connect to database {}@{}".format(cfg['db'], cfg['host']))