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