""" 确保默认管理员账号存在:username=admin, password=123456,角色 admin。 """ from app import db from app.models.user import User, Role from app.utils.auth import hash_password def ensure_admin_user(admin_username="admin", admin_password="123456", admin_email=None): """若不存在则创建管理员角色及管理员用户。""" if not admin_email: admin_email = f"{admin_username}@localhost" role = Role.query.filter_by(name="admin").first() if not role: role = Role(name="admin", description="Administrator") db.session.add(role) db.session.flush() user = User.query.filter_by(username=admin_username).first() if not user: user = User( username=admin_username, email=admin_email, password_hash=hash_password(admin_password), role_id=role.id, is_active=True, ) db.session.add(user) else: if user.role_id != role.id: user.role_id = role.id if not user.is_active: user.is_active = True db.session.commit()