feat: 管理员密码支持从环境变量同步
修改环境变量 ADMIN_PASSWORD 后重启容器即可生效,无需删除数据库 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user