Fixed console password utility ymspass.py

This commit is contained in:
2026-09-26 09:08:10 +02:00
parent 99df0287be
commit c3109b9d2a
+22 -7
View File
@@ -14,15 +14,28 @@ cfg = {
'user': 'yms' 'user': 'yms'
} }
def set_pass(): def set_pass(uid):
newpass = getpass('New Password: ') 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()) cryptpass = bcrypt.hashpw(newpass.encode(), bcrypt.gensalt())
print(cryptpass.decode())
sql = "UPDATE user SET pass=%s WHERE userid=%s" sql = "UPDATE user SET pass=%s WHERE userid=%s"
db.cur.execute(sql, (cryptpass.decode(), uid))
db.conn.commit()
print("Ok.")
def get_user(): 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" sql = "SELECT userid FROM user WHERE login=%s"
db.cur.execute(sql, (username,)) db.cur.execute(sql, (username,))
row = db.cur.fetchone() row = db.cur.fetchone()
@@ -44,8 +57,10 @@ if __name__ == "__main__":
cfg['pass'] = config.get('DB', 'pass') cfg['pass'] = config.get('DB', 'pass')
db = database.Database(cfg['host'], cfg['db']) db = database.Database(cfg['host'], cfg['db'])
if db.connect(cfg['user'], cfg['pass']): if db.connect(cfg['user'], cfg['pass']):
print("Connected to database") print("Connected to database {}@{}".format(cfg['db'], cfg['host']))
print(get_user()) uid = get_user()
if uid >= 0:
set_pass(uid)
db.disconnect() db.disconnect()
else: else:
print("Cannot connect to database {}@{}".format(cfg['db'], cfg['host'])) print("Cannot connect to database {}@{}".format(cfg['db'], cfg['host']))