Files
cattleTransportation/pc-cattle-transportation/SUPER_ADMIN_PERMISSIONS_GUIDE.md
2025-10-20 17:32:09 +08:00

3.4 KiB
Raw Blame History

超级管理员权限管理指南

概述

本指南说明如何为超级管理员账户手机号15900000000打开全部菜单权限。

方法一:通过权限管理界面操作(推荐)

步骤:

  1. 登录系统

    • 使用超级管理员账户登录系统
    • 导航到权限管理页面:/permission/menu
  2. 选择目标用户

    • 在左侧用户列表中找到手机号为 15900000000 的用户
    • 点击选择该用户
  3. 分配权限

    • 方法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);
}

注意事项

  1. 超级管理员特权

    • 超级管理员roleId = 1在代码层面已经拥有所有权限
    • 菜单权限分配主要用于界面显示和权限管理
  2. 权限持久化

    • 权限分配会保存到数据库的 sys_role_menu 表中
    • 重新登录后权限仍然有效
  3. 安全考虑

    • 只有拥有 permission:menu:assign 权限的用户才能分配权限
    • 建议定期检查权限分配情况

故障排除

常见问题

  1. 找不到用户:确认手机号是否正确
  2. 权限分配失败:检查是否有分配权限的权限
  3. 菜单不显示:确认菜单权限已正确分配

调试信息

系统会在控制台输出详细的调试信息:

=== 获取用户菜单 ===
=== 用户权限检查 ===
=== 权限路由生成 ===
=== 处理后的菜单列表 ===

相关文件

  • 前端权限管理:src/views/permission/menuPermission.vue
  • 权限APIsrc/api/permission.js
  • 工具函数:src/utils/superAdminHelper.js
  • 后端控制器:SysMenuController.java
  • 权限验证:StpInterfaceImpl.java