80 lines
2.6 KiB
Python
80 lines
2.6 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
检查并重置管理员账号
|
|
"""
|
|
|
|
from sqlalchemy.orm import Session
|
|
from app.models.database import engine, Base, SessionLocal
|
|
from app.models.models import User, Role
|
|
from app.services.user import UserService
|
|
|
|
|
|
def check_admin():
|
|
"""检查并重置管理员账号"""
|
|
db = SessionLocal()
|
|
|
|
try:
|
|
# 检查是否存在管理员账号
|
|
print("检查管理员账号...")
|
|
admin_user = db.query(User).filter(User.username == "admin").first()
|
|
|
|
if not admin_user:
|
|
print("⚠️ 管理员账号不存在,创建新的管理员账号...")
|
|
|
|
# 初始化默认角色
|
|
UserService.init_default_roles(db)
|
|
|
|
# 获取默认管理员角色
|
|
admin_role = UserService.get_role_by_name(db, "admin")
|
|
if not admin_role:
|
|
print("❌ 管理员角色不存在,创建失败")
|
|
return
|
|
|
|
# 创建默认管理员账号
|
|
admin_user = User(
|
|
id="user-admin",
|
|
username="admin",
|
|
email="admin@example.com",
|
|
password_hash=UserService.get_password_hash("admin123"),
|
|
role_id=admin_role.id,
|
|
status="active"
|
|
)
|
|
db.add(admin_user)
|
|
db.commit()
|
|
db.refresh(admin_user)
|
|
print("✅ 管理员账号创建成功")
|
|
else:
|
|
print("✅ 管理员账号存在,重置密码...")
|
|
# 重置管理员密码
|
|
admin_user.password_hash = UserService.get_password_hash("admin123")
|
|
db.commit()
|
|
print("✅ 管理员密码重置成功")
|
|
|
|
# 显示管理员账号信息
|
|
print("\n管理员账号信息:")
|
|
print(f"用户名: {admin_user.username}")
|
|
print(f"密码: admin123")
|
|
print(f"邮箱: {admin_user.email}")
|
|
print(f"状态: {admin_user.status}")
|
|
|
|
# 检查角色信息
|
|
if admin_user.role:
|
|
print(f"角色: {admin_user.role.name}")
|
|
else:
|
|
print("⚠️ 管理员角色信息缺失")
|
|
# 尝试修复角色关联
|
|
admin_role = UserService.get_role_by_name(db, "admin")
|
|
if admin_role:
|
|
admin_user.role_id = admin_role.id
|
|
db.commit()
|
|
print("✅ 管理员角色关联修复成功")
|
|
|
|
except Exception as e:
|
|
print(f"❌ 操作失败: {e}")
|
|
finally:
|
|
db.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
check_admin()
|