93 lines
3.4 KiB
SQL
93 lines
3.4 KiB
SQL
-- ==========================================
|
|
-- 统计权限修复脚本
|
|
-- 功能:确保只有维护管理员和超级管理员才能查看统计卡片
|
|
-- 时间: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; |