Consolidate password verification

This commit is contained in:
2026-07-22 14:50:33 +02:00
parent aec5c278a1
commit d13aea8e7d
+15 -12
View File
@@ -17,6 +17,15 @@ from .models import (
) )
def validate_password(password, confirm):
"""Validate password and confirmation match with min length."""
if password != confirm:
return "Error: Passwords do not match."
if len(password) < 8:
return "Error: Password must be at least 8 characters."
return None
def cmd_user_list(args, app): def cmd_user_list(args, app):
"""List all users.""" """List all users."""
users = User.select().order_by(User.username) users = User.select().order_by(User.username)
@@ -53,12 +62,9 @@ def cmd_user_add(args, app):
password = getpass.getpass("Password: ") password = getpass.getpass("Password: ")
password_confirm = getpass.getpass("Confirm password: ") password_confirm = getpass.getpass("Confirm password: ")
if password != password_confirm: error = validate_password(password, password_confirm)
print("Error: Passwords do not match.") if error:
return 1 print(error)
if len(password) < 8:
print("Error: Password must be at least 8 characters.")
return 1 return 1
# Hash password and create user # Hash password and create user
@@ -102,12 +108,9 @@ def cmd_user_passwd(args, app):
password = getpass.getpass("New password: ") password = getpass.getpass("New password: ")
password_confirm = getpass.getpass("Confirm password: ") password_confirm = getpass.getpass("Confirm password: ")
if password != password_confirm: error = validate_password(password, password_confirm)
print("Error: Passwords do not match.") if error:
return 1 print(error)
if len(password) < 8:
print("Error: Password must be at least 8 characters.")
return 1 return 1
user.password_hash = app.password_hasher.hash(password) user.password_hash = app.password_hasher.hash(password)