diff --git a/src/vitals/web/app.py b/src/vitals/web/app.py index b5b268f..4990afc 100644 --- a/src/vitals/web/app.py +++ b/src/vitals/web/app.py @@ -23,7 +23,7 @@ db.migrate_auth_fields() # 迁移认证字段 def ensure_admin_user(): - """确保管理员账户存在(从环境变量创建)""" + """确保管理员账户存在,密码与环境变量同步""" admin_username = os.environ.get("ADMIN_USERNAME") admin_password = os.environ.get("ADMIN_PASSWORD") @@ -32,17 +32,22 @@ def ensure_admin_user(): # 检查是否已存在该用户名 existing = db.get_user_by_name(admin_username) + new_password_hash = hash_password(admin_password) + if existing: - # 用户已存在,确保是管理员 + # 用户已存在,同步密码(环境变量优先) if not existing.is_admin: existing.is_admin = True + if existing.password_hash != new_password_hash: + existing.password_hash = new_password_hash db.update_user(existing) + print(f"[Vitals] 管理员密码已从环境变量同步") return # 创建管理员账户 admin_user = User( name=admin_username, - password_hash=hash_password(admin_password), + password_hash=new_password_hash, is_admin=True, is_active=True, is_disabled=False,