from app import app from extensions import db from models import User, Role, Permission def init_rbac(): with app.app_context(): print("🚀 正在初始化 RBAC 系统...") # 1. 创建基础权限 perms = { 'view_logs': '查看系统日志', 'manage_rbac': '管理角色与权限', 'manage_users': '管理用户信息', 'manage_dicts': '管理系统字典', 'manage_notifications': '管理系统通知', 'manage_system': '系统最高权限' } perm_objs = {} for code, desc in perms.items(): p = Permission.query.filter_by(name=code).first() if not p: p = Permission(name=code, description=desc) db.session.add(p) perm_objs[code] = p db.session.commit() # 2. 创建基础角色 # 超级管理员角色 admin_role = Role.query.filter_by(name='超级管理员').first() if not admin_role: admin_role = Role(name='超级管理员', description='系统最高权限持有者') admin_role.permissions = list(perm_objs.values()) db.session.add(admin_role) else: # 确保现有超级管理员拥有所有新权限 admin_role.permissions = list(perm_objs.values()) # 普通用户角色 user_role = Role.query.filter_by(name='普通用户').first() if not user_role: user_role = Role(name='普通用户', description='常规功能使用者') db.session.add(user_role) db.session.commit() # 3. 为现有用户分配超级管理员角色(作为测试) # 请根据实际情况修改 first_user = User.query.first() if first_user: first_user.role = admin_role db.session.commit() print(f"✅ 已将用户 {first_user.phone} 设为超级管理员") print("✨ RBAC 初始化完成") if __name__ == '__main__': init_rbac()