3.8 KiB
3.8 KiB
用户权限修复指南
问题描述
zhanglaoshi和lililaoshi两个账号虽然应该有不同的权限和职责,但实际登录后看到的权限和数据是相同的。根据系统设计:
- zhanglaoshi:负责审核学生信息,应该只能看到状态为0和1的数据
- lililaoshi:负责确认缴费和填写录取通知书号码,应该只能看到状态为2的数据
修复方案
我们已经准备了三个修复脚本文件:
fix-user-role-permissions.sql:修复数据库中的用户角色关联和权限配置ZsjyEnrollmentProcessServiceImpl-fixed.java:修复后端服务实现类中的数据过滤逻辑fix-enrollmentProcess-view.vue:修复前端页面中的权限控制和数据过滤
修复步骤
1. 修复数据库中的用户角色关联
执行以下SQL脚本修复数据库中的用户角色关联和权限配置:
mysql -u root -p hzdyjs_xg < fix-user-role-permissions.sql
或者直接在MySQL客户端中执行fix-user-role-permissions.sql文件中的SQL语句。
2. 修复后端服务实现类
- 找到
ZsjyEnrollmentProcessServiceImpl.java文件:
find /path/to/project -name "ZsjyEnrollmentProcessServiceImpl.java"
- 备份原文件:
cp /path/to/ZsjyEnrollmentProcessServiceImpl.java /path/to/ZsjyEnrollmentProcessServiceImpl.java.bak
- 用修复后的文件替换原文件:
cp ZsjyEnrollmentProcessServiceImpl-fixed.java /path/to/ZsjyEnrollmentProcessServiceImpl.java
3. 修复前端页面
- 找到
enrollmentProcess/index.vue文件:
find /path/to/project -name "index.vue" | grep enrollmentProcess
- 备份原文件:
cp /path/to/enrollmentProcess/index.vue /path/to/enrollmentProcess/index.vue.bak
-
根据
fix-enrollmentProcess-view.vue文件中的代码片段修改原文件:- 修改下拉菜单中的操作项,添加v-hasPermi指令
- 添加用户角色判断辅助函数
- 修改getList方法,根据用户角色过滤数据
4. 重启服务
- 重新编译并启动后端服务:
cd /path/to/backend
mvn clean package
./hot-start.sh
- 重新编译并启动前端服务:
cd /path/to/web
npm run build
5. 清除缓存并重新登录
- 清除浏览器缓存
- 重新登录系统
- 分别使用zhanglaoshi和lililaoshi账号测试
验证修复效果
zhanglaoshi账号
- 登录系统:用户名
zhanglaoshi,密码123456 - 进入流程状态页面
- 验证是否只能看到状态为0和1的数据
- 验证是否只能看到"查看详情"和"信息审核"按钮
- 验证下拉菜单中是否没有"缴费确认"和"录取处理"等操作
lililaoshi账号
- 登录系统:用户名
lililaoshi,密码123456 - 进入流程状态页面
- 验证是否只能看到状态为2的数据
- 验证是否只能看到"查看详情"和"录取处理"按钮
- 验证下拉菜单中是否有"缴费确认"操作,但没有"信息审核"操作
常见问题
1. 修复后仍然看到相同的数据和权限
可能原因:
- 浏览器缓存未清除
- 后端服务未重启
- 权限缓存未更新
解决方法:
- 清除浏览器缓存
- 重启后端服务
- 重新登录系统
2. 部分按钮仍然可见但点击无反应
可能原因:
- 前端权限控制未完全修复
- 后端接口权限验证生效
解决方法:
- 检查前端v-hasPermi指令是否正确应用
- 确认后端接口权限注解是否正确配置
3. 数据过滤不正确
可能原因:
- 后端查询条件构建错误
- 角色权限配置不正确
解决方法:
- 检查后端查询条件构建逻辑
- 验证角色权限配置是否正确
联系支持
如果在修复过程中遇到问题,请联系系统开发团队获取支持。
修复日期: 2025-07-21
修复人员: Cursor AI
修复版本: v1.0