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

44 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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