Files
hzdyjs/test/学生信息管理权限配置.sql
T
2025-07-16 18:11:31 +08:00

106 lines
5.0 KiB
SQL

-- ==========================================
-- 学生信息管理模块权限配置脚本
-- 版本:V1.0.0
-- 功能:为学生信息管理模块创建完整的权限配置
-- 作者:Cursor AI 辅助
-- 时间:2025-01-15
-- 说明:解决新增学生功能权限问题
-- ==========================================
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- 检查是否存在学工管理主菜单
SELECT 'checking existing menus...' as message;
SELECT menu_id, menu_name, parent_id, path, perms FROM sys_menu WHERE menu_name LIKE '%学工%' OR menu_name LIKE '%学生%';
-- 1. 创建学工管理主菜单(如果不存在)
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`
) VALUES (
1800, '学工管理', 0, 18, 'xg', NULL,
'', 1, 0, 'M', '0', '0',
'', 'education', 1, NOW(), 1, NOW(), '学工管理主菜单'
) ON DUPLICATE KEY UPDATE menu_name = VALUES(menu_name);
-- 2. 创建学生信息管理菜单
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`
) VALUES (
1801, '学生信息管理', 1800, 1, 'student-info', 'xg-xx/studentInfo/index',
'', 1, 0, 'C', '0', '0',
'xg:studentInfo:list', 'user', 1, NOW(), 1, NOW(), '学生信息管理页面'
) ON DUPLICATE KEY UPDATE menu_name = VALUES(menu_name);
-- 3. 创建学生信息管理功能按钮权限
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`
) VALUES
-- 基础CRUD权限
(1811, '学生信息查询', 1801, 1, '', NULL, '', 1, 0, 'F', '0', '0', 'xg:studentInfo:query', '#', 1, NOW(), 1, NOW(), '学生信息查询权限'),
(1812, '学生信息新增', 1801, 2, '', NULL, '', 1, 0, 'F', '0', '0', 'xg:studentInfo:add', '#', 1, NOW(), 1, NOW(), '学生信息新增权限'),
(1813, '学生信息修改', 1801, 3, '', NULL, '', 1, 0, 'F', '0', '0', 'xg:studentInfo:edit', '#', 1, NOW(), 1, NOW(), '学生信息修改权限'),
(1814, '学生信息删除', 1801, 4, '', NULL, '', 1, 0, 'F', '0', '0', 'xg:studentInfo:remove', '#', 1, NOW(), 1, NOW(), '学生信息删除权限'),
-- 批量操作权限
(1815, '学生信息导出', 1801, 5, '', NULL, '', 1, 0, 'F', '0', '0', 'xg:studentInfo:export', '#', 1, NOW(), 1, NOW(), '学生信息导出权限'),
(1816, '学生信息导入', 1801, 6, '', NULL, '', 1, 0, 'F', '0', '0', 'xg:studentInfo:import', '#', 1, NOW(), 1, NOW(), '学生信息导入权限'),
-- 业务功能权限
(1817, '学生信息审核', 1801, 7, '', NULL, '', 1, 0, 'F', '0', '0', 'xg:studentInfo:audit', '#', 1, NOW(), 1, NOW(), '学生信息审核权限'),
(1818, '学生信息统计', 1801, 8, '', NULL, '', 1, 0, 'F', '0', '0', 'xg:studentInfo:statistics', '#', 1, NOW(), 1, NOW(), '学生信息统计权限'),
(1819, '学生信息批量操作', 1801, 9, '', NULL, '', 1, 0, 'F', '0', '0', 'xg:studentInfo:batch', '#', 1, NOW(), 1, NOW(), '学生信息批量操作权限')
ON DUPLICATE KEY UPDATE menu_name = VALUES(menu_name);
-- 4. 为admin用户(超级管理员)分配所有权限
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
SELECT 1, menu_id FROM `sys_menu` WHERE menu_id BETWEEN 1800 AND 1819
ON DUPLICATE KEY UPDATE role_id = VALUES(role_id);
-- 5. 为其他角色分配基础权限(如果角色存在)
-- 为学工管理员角色分配全部权限
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
SELECT 2, menu_id FROM `sys_menu` WHERE menu_id BETWEEN 1800 AND 1819
ON DUPLICATE KEY UPDATE role_id = VALUES(role_id);
-- 为普通用户角色分配基础权限
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
SELECT 3, menu_id FROM `sys_menu` WHERE menu_id IN (1800, 1801, 1811, 1812, 1813, 1815)
ON DUPLICATE KEY UPDATE role_id = VALUES(role_id);
-- 6. 验证权限配置
SELECT 'Permission configuration completed!' as message;
SELECT
m.menu_id,
m.menu_name,
m.parent_id,
m.menu_type,
m.perms,
m.path,
m.component
FROM sys_menu m
WHERE m.menu_id BETWEEN 1800 AND 1819
ORDER BY m.menu_id;
-- 7. 验证角色权限分配
SELECT 'Role permissions assigned:' as message;
SELECT
r.role_id,
r.role_name,
COUNT(rm.menu_id) as menu_count
FROM sys_role r
LEFT JOIN sys_role_menu rm ON r.role_id = rm.role_id
LEFT JOIN sys_menu m ON rm.menu_id = m.menu_id
WHERE m.menu_id BETWEEN 1800 AND 1819
GROUP BY r.role_id, r.role_name
ORDER BY r.role_id;
SET FOREIGN_KEY_CHECKS = 1;
-- 完成提示
SELECT 'Student information management permissions configured successfully!' as result;
SELECT 'Please restart the backend service to apply the new permissions.' as note;