-- 用户管理代登录按钮权限(MySQL 5.7+)。 -- 仅新增菜单权限,不修改角色授权;后端同时限制只有 user_id=1 的超级管理员可使用。 -- 父菜单不存在或存在多个候选时不会插入,需先人工核对;重复执行不会重复新增。 SET NAMES utf8mb4; SELECT menu_id, menu_name, parent_id, component, perms, menu_type, status FROM sys_menu WHERE menu_type = 'C' AND (component = 'system/user/index' OR perms = 'system:user:list'); SELECT menu_id, menu_name, parent_id, menu_type, perms, status FROM sys_menu WHERE perms = 'system:user:impersonate'; INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) SELECT '代登录用户', p.menu_id, 10, '', NULL, 1, 0, 'F', '0', '0', 'system:user:impersonate', '#', 'admin', NOW(), '超级管理员以目标用户身份进入系统' FROM sys_menu p WHERE p.menu_type = 'C' AND (p.component = 'system/user/index' OR p.perms = 'system:user:list') AND (SELECT COUNT(*) FROM (SELECT menu_id FROM sys_menu WHERE menu_type = 'C' AND (component = 'system/user/index' OR perms = 'system:user:list')) candidates) = 1 AND NOT EXISTS (SELECT 1 FROM (SELECT menu_id FROM sys_menu WHERE perms = 'system:user:impersonate') existing_permission); -- 成功标识:仅有一条权限,类型为 F,状态为 0,父菜单为用户管理。 -- 如未满足,保留现状并核对上方查询结果;修正冲突后重新执行完整文件。 SELECT b.menu_id, b.menu_name, b.perms, b.menu_type, b.status, p.menu_id AS parent_id, p.menu_name AS parent_name, p.component AS parent_component FROM sys_menu b LEFT JOIN sys_menu p ON p.menu_id = b.parent_id WHERE b.perms = 'system:user:impersonate';