1.5 KiB
1.5 KiB
角色权限菜单显示问题修复计划
问题分析
用户反馈:创建了 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
预期效果
- 用户登录后,系统会根据其角色权限动态显示菜单项
- "大会员"角色只能看到"用户管理"菜单
- "管理员"角色可以看到所有菜单
风险评估
- 低风险:修改范围明确,不影响核心业务逻辑
- 需要确保权限编码与菜单的对应关系正确