BookSystem/.trae/documents/permission_menu_fix_plan.md
jayhgq c4aac6979a feat(auth,admin): 修复角色权限菜单显示问题
1.  后端添加获取当前用户权限接口
2.  前端增加权限校验和动态菜单渲染
3.  优化表单验证错误处理
4.  完善gitignore和项目配置更新
2026-05-27 11:42:23 +08:00

1.5 KiB
Raw Blame History

角色权限菜单显示问题修复计划

问题分析

用户反馈:创建了 jayhgq 用户,分配了"大会员"角色(该角色只能看到用户管理),但登录后仍然能看到角色和权限管理菜单。

根本原因:前端 AdminLayout.vue 中的菜单项是硬编码的,没有根据用户权限动态过滤。

修复方案

步骤 1后端添加获取当前用户权限接口

/permissions 路由中添加一个新接口,用于获取当前登录用户的权限列表。

文件backend/auth/apps/permissions/urls.py

步骤 2前端认证 Store 添加权限获取方法

auth.ts 中添加获取用户权限的方法,并存储权限列表。

文件frontend/src/modules/admin/stores/auth.ts

步骤 3修改前端布局组件动态渲染菜单

修改 AdminLayout.vue,根据用户权限动态显示菜单项。

文件frontend/src/modules/admin/layout/AdminLayout.vue

步骤 4路由权限控制可选增强

在路由守卫中添加权限验证,防止无权限用户直接访问受保护的路由。

文件frontend/src/router/index.ts

预期效果

  • 用户登录后,系统会根据其角色权限动态显示菜单项
  • "大会员"角色只能看到"用户管理"菜单
  • "管理员"角色可以看到所有菜单

风险评估

  • 低风险:修改范围明确,不影响核心业务逻辑
  • 需要确保权限编码与菜单的对应关系正确