| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- -- ==========================================
- -- 统计权限修复脚本
- -- 功能:确保只有维护管理员和超级管理员才能查看统计卡片
- -- 时间:2025-06-30 18:58:00
- -- 说明:修复统计权限分配,移除维修人员的统计权限
- -- ==========================================
- -- 第一步:确保统计权限项存在
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component,
- query_param, is_frame, is_cache, menu_type, visible, status,
- perms, icon, create_by, create_time, update_by, update_time, remark
- )
- SELECT
- 2120, '统计数据', 2110, 10, '', '',
- '', 1, 0, 'F', '0', '0',
- 'pm:repairOrder:statistics', '#', 1, now(), 1, now(), '获取报修统计数据'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2120);
- -- 第二步:移除维修人员的统计权限(如果存在)
- DELETE FROM sys_role_menu
- WHERE role_id = 5 AND menu_id = 2120;
- -- 第三步:确保超级管理员有统计权限
- INSERT IGNORE INTO sys_role_menu (role_id, menu_id) VALUES
- (1, 2120); -- admin角色
- -- 第四步:确保物业维修管理员有统计权限
- INSERT IGNORE INTO sys_role_menu (role_id, menu_id) VALUES
- (6, 2120); -- property_maintenance_admin角色
- -- 第五步:验证权限分配结果
- SELECT '=== 统计权限分配验证 ===' as section;
- -- 检查统计权限项是否存在
- SELECT
- menu_id, menu_name, perms, menu_type, status
- FROM sys_menu
- WHERE menu_id = 2120;
- -- 检查哪些角色有统计权限
- SELECT
- '当前拥有统计权限的角色' as info_type,
- rm.role_id,
- r.role_name,
- r.role_key,
- r.status as role_status
- FROM sys_role_menu rm
- JOIN sys_role r ON rm.role_id = r.role_id
- WHERE rm.menu_id = 2120
- ORDER BY rm.role_id;
- -- 检查维修人员是否还有统计权限(应该为空)
- SELECT
- '维修人员统计权限检查' as info_type,
- CASE
- WHEN COUNT(*) = 0 THEN '✓ 正确:维修人员没有统计权限'
- ELSE '✗ 错误:维修人员仍有统计权限'
- END as result
- FROM sys_role_menu
- WHERE role_id = 5 AND menu_id = 2120;
- -- 检查物业维修管理员是否有统计权限
- SELECT
- '物业维修管理员统计权限检查' as info_type,
- CASE
- WHEN COUNT(*) > 0 THEN '✓ 正确:物业维修管理员有统计权限'
- ELSE '✗ 错误:物业维修管理员缺少统计权限'
- END as result
- FROM sys_role_menu
- WHERE role_id = 6 AND menu_id = 2120;
- -- 第六步:权限分配总结
- SELECT '=== 权限分配总结 ===' as section;
- SELECT
- '统计权限分配已修复' as status,
- '只有超级管理员和物业维修管理员可以查看统计卡片' as permission_rule,
- '维修人员和其他角色无法查看统计功能' as restriction;
- -- 第七步:测试指导
- SELECT '=== 测试指导 ===' as section;
- SELECT
- '使用以下账号测试权限是否正确' as test_guide,
- 'admin/admin123 - 应该能看到统计卡片' as test_case_1,
- 'property_admin_test/admin123 - 应该能看到统计卡片' as test_case_2,
- 'maintenance_test/admin123 - 不应该看到统计卡片' as test_case_3,
- '前端会根据用户角色自动隐藏/显示统计区域' as frontend_behavior;
- -- 第八步:完成提示
- SELECT
- '统计权限修复完成' as completion_status,
- '需要重启前端和后端服务以确保权限生效' as next_step,
- '运行 test/statistics-permission-test.js 验证权限配置' as verification;
|