# 超级管理员权限管理指南 ## 概述 本指南说明如何为超级管理员账户(手机号:15900000000)打开全部菜单权限。 ## 方法一:通过权限管理界面操作(推荐) ### 步骤: 1. **登录系统** - 使用超级管理员账户登录系统 - 导航到权限管理页面:`/permission/menu` 2. **选择目标用户** - 在左侧用户列表中找到手机号为 `15900000000` 的用户 - 点击选择该用户 3. **分配权限** - **方法A:手动全选** - 在右侧菜单树中,手动勾选所有菜单项 - 点击"保存菜单权限"按钮 - **方法B:一键分配(新增功能)** - 点击"一键分配全部权限"按钮 - 确认操作 - 系统将自动为该用户分配所有菜单权限 ## 方法二:使用工具函数(开发者) ### 导入工具函数 ```javascript import { assignAllPermissionsToSuperAdmin, checkSuperAdminPermissions, quickAssignAllPermissions } from '@/utils/superAdminHelper.js'; ``` ### 检查权限状态 ```javascript // 检查超级管理员当前权限状态 const status = await checkSuperAdminPermissions('15900000000'); console.log('权限状态:', status); ``` ### 分配所有权限 ```javascript // 为超级管理员分配所有菜单权限 const success = await assignAllPermissionsToSuperAdmin('15900000000'); if (success) { console.log('权限分配成功'); } ``` ### 一键分配(包含确认提示) ```javascript // 一键分配权限(包含UI确认提示) const success = await quickAssignAllPermissions('15900000000'); ``` ## 方法三:通过API直接调用 ### 获取所有菜单 ```javascript // GET /sysMenu/list const menuListRes = await getMenuList(); const allMenuIds = menuListRes.data.map(menu => menu.id); ``` ### 分配权限 ```javascript // POST /sysMenu/assignRoleMenus const assignRes = await assignRoleMenus({ roleId: targetUser.roleId, menuIds: allMenuIds }); ``` ## 权限验证 ### 前端验证 系统会自动检查用户权限: - 超级管理员(roleId = 1)自动拥有 `*:*:*` 权限 - 普通用户根据分配的菜单权限进行验证 ### 后端验证 ```java // 在 LoginServiceImpl.java 中 if (roleId.equals(RoleConstants.SUPER_ADMIN_ROLE_ID)) { return Collections.singletonList(RoleConstants.ALL_PERMISSION); } ``` ## 注意事项 1. **超级管理员特权**: - 超级管理员(roleId = 1)在代码层面已经拥有所有权限 - 菜单权限分配主要用于界面显示和权限管理 2. **权限持久化**: - 权限分配会保存到数据库的 `sys_role_menu` 表中 - 重新登录后权限仍然有效 3. **安全考虑**: - 只有拥有 `permission:menu:assign` 权限的用户才能分配权限 - 建议定期检查权限分配情况 ## 故障排除 ### 常见问题 1. **找不到用户**:确认手机号是否正确 2. **权限分配失败**:检查是否有分配权限的权限 3. **菜单不显示**:确认菜单权限已正确分配 ### 调试信息 系统会在控制台输出详细的调试信息: ``` === 获取用户菜单 === === 用户权限检查 === === 权限路由生成 === === 处理后的菜单列表 === ``` ## 相关文件 - 前端权限管理:`src/views/permission/menuPermission.vue` - 权限API:`src/api/permission.js` - 工具函数:`src/utils/superAdminHelper.js` - 后端控制器:`SysMenuController.java` - 权限验证:`StpInterfaceImpl.java`