rs-role-permissions.sql 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. -- =================================================
  2. -- 人事管理模块权限配置脚本
  3. -- 创建日期: 2025-07-05
  4. -- 作者: cursor
  5. -- 说明: 配置人事管理模块的角色权限
  6. -- =================================================
  7. -- 检查并获取角色ID
  8. DECLARE @adminRoleId INT = (SELECT role_id FROM sys_role WHERE role_key = 'admin');
  9. DECLARE @commonRoleId INT = (SELECT role_id FROM sys_role WHERE role_key = 'common');
  10. -- =============================
  11. -- 1. 人事管理模块菜单权限
  12. -- =============================
  13. -- 获取人事管理顶级菜单及其子菜单ID
  14. DECLARE @rsParentMenu INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '人事管理' AND parent_id = 0);
  15. -- 获取职位管理菜单ID
  16. DECLARE @jobMenu INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '职位管理' AND parent_id = @rsParentMenu);
  17. -- 获取职位管理按钮ID
  18. DECLARE @jobQuery INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '职位管理查询' AND parent_id = @jobMenu);
  19. DECLARE @jobAdd INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '职位管理新增' AND parent_id = @jobMenu);
  20. DECLARE @jobEdit INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '职位管理修改' AND parent_id = @jobMenu);
  21. DECLARE @jobRemove INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '职位管理删除' AND parent_id = @jobMenu);
  22. DECLARE @jobExport INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '职位管理导出' AND parent_id = @jobMenu);
  23. -- 获取招聘中心菜单ID
  24. DECLARE @publicJobMenu INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '招聘中心' AND parent_id = @rsParentMenu);
  25. -- 获取申请管理菜单ID
  26. DECLARE @appMenu INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '申请管理' AND parent_id = @rsParentMenu);
  27. -- 获取申请管理按钮ID
  28. DECLARE @appQuery INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '申请管理查询' AND parent_id = @appMenu);
  29. DECLARE @appAdd INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '申请管理新增' AND parent_id = @appMenu);
  30. DECLARE @appEdit INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '申请管理修改' AND parent_id = @appMenu);
  31. DECLARE @appRemove INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '申请管理删除' AND parent_id = @appMenu);
  32. DECLARE @appExport INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '申请管理导出' AND parent_id = @appMenu);
  33. -- 获取应聘者管理菜单ID
  34. DECLARE @applicantMenu INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '应聘者管理' AND parent_id = @rsParentMenu);
  35. -- 获取应聘者管理按钮ID
  36. DECLARE @applicantQuery INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '应聘者管理查询' AND parent_id = @applicantMenu);
  37. DECLARE @applicantAdd INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '应聘者管理新增' AND parent_id = @applicantMenu);
  38. DECLARE @applicantEdit INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '应聘者管理修改' AND parent_id = @applicantMenu);
  39. DECLARE @applicantRemove INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '应聘者管理删除' AND parent_id = @applicantMenu);
  40. -- 获取教育经历管理菜单ID
  41. DECLARE @eduMenu INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '教育经历管理' AND parent_id = @rsParentMenu);
  42. -- 获取教育经历管理按钮ID
  43. DECLARE @eduQuery INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '教育经历管理查询' AND parent_id = @eduMenu);
  44. DECLARE @eduAdd INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '教育经历管理新增' AND parent_id = @eduMenu);
  45. DECLARE @eduEdit INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '教育经历管理修改' AND parent_id = @eduMenu);
  46. DECLARE @eduRemove INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '教育经历管理删除' AND parent_id = @eduMenu);
  47. -- 获取工作经历管理菜单ID
  48. DECLARE @expMenu INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '工作经历管理' AND parent_id = @rsParentMenu);
  49. -- 获取工作经历管理按钮ID
  50. DECLARE @expQuery INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '工作经历管理查询' AND parent_id = @expMenu);
  51. DECLARE @expAdd INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '工作经历管理新增' AND parent_id = @expMenu);
  52. DECLARE @expEdit INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '工作经历管理修改' AND parent_id = @expMenu);
  53. DECLARE @expRemove INT = (SELECT menu_id FROM sys_menu WHERE menu_name = '工作经历管理删除' AND parent_id = @expMenu);
  54. -- =============================
  55. -- 2. 为管理员角色添加所有人事管理权限
  56. -- =============================
  57. -- 检查并添加菜单权限 (先删除可能存在的权限,再添加)
  58. -- 顶级菜单权限
  59. DELETE FROM sys_role_menu WHERE role_id = @adminRoleId AND menu_id = @rsParentMenu;
  60. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @rsParentMenu);
  61. -- 职位管理权限
  62. DELETE FROM sys_role_menu WHERE role_id = @adminRoleId AND menu_id = @jobMenu;
  63. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @jobMenu);
  64. DELETE FROM sys_role_menu WHERE role_id = @adminRoleId AND menu_id IN (@jobQuery, @jobAdd, @jobEdit, @jobRemove, @jobExport);
  65. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @jobQuery);
  66. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @jobAdd);
  67. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @jobEdit);
  68. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @jobRemove);
  69. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @jobExport);
  70. -- 招聘中心权限
  71. DELETE FROM sys_role_menu WHERE role_id = @adminRoleId AND menu_id = @publicJobMenu;
  72. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @publicJobMenu);
  73. -- 申请管理权限
  74. DELETE FROM sys_role_menu WHERE role_id = @adminRoleId AND menu_id = @appMenu;
  75. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @appMenu);
  76. DELETE FROM sys_role_menu WHERE role_id = @adminRoleId AND menu_id IN (@appQuery, @appAdd, @appEdit, @appRemove, @appExport);
  77. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @appQuery);
  78. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @appAdd);
  79. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @appEdit);
  80. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @appRemove);
  81. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @appExport);
  82. -- 应聘者管理权限
  83. DELETE FROM sys_role_menu WHERE role_id = @adminRoleId AND menu_id = @applicantMenu;
  84. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @applicantMenu);
  85. DELETE FROM sys_role_menu WHERE role_id = @adminRoleId AND menu_id IN (@applicantQuery, @applicantAdd, @applicantEdit, @applicantRemove);
  86. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @applicantQuery);
  87. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @applicantAdd);
  88. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @applicantEdit);
  89. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @applicantRemove);
  90. -- 教育经历管理权限
  91. DELETE FROM sys_role_menu WHERE role_id = @adminRoleId AND menu_id = @eduMenu;
  92. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @eduMenu);
  93. DELETE FROM sys_role_menu WHERE role_id = @adminRoleId AND menu_id IN (@eduQuery, @eduAdd, @eduEdit, @eduRemove);
  94. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @eduQuery);
  95. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @eduAdd);
  96. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @eduEdit);
  97. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @eduRemove);
  98. -- 工作经历管理权限
  99. DELETE FROM sys_role_menu WHERE role_id = @adminRoleId AND menu_id = @expMenu;
  100. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @expMenu);
  101. DELETE FROM sys_role_menu WHERE role_id = @adminRoleId AND menu_id IN (@expQuery, @expAdd, @expEdit, @expRemove);
  102. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @expQuery);
  103. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @expAdd);
  104. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @expEdit);
  105. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@adminRoleId, @expRemove);
  106. -- =============================
  107. -- 3. 为普通用户添加有限的人事管理权限
  108. -- =============================
  109. -- 招聘中心权限(查看公开职位)
  110. DELETE FROM sys_role_menu WHERE role_id = @commonRoleId AND menu_id = @rsParentMenu;
  111. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@commonRoleId, @rsParentMenu);
  112. DELETE FROM sys_role_menu WHERE role_id = @commonRoleId AND menu_id = @publicJobMenu;
  113. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@commonRoleId, @publicJobMenu);
  114. -- 职位申请权限(仅查询)
  115. DELETE FROM sys_role_menu WHERE role_id = @commonRoleId AND menu_id = @jobMenu;
  116. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@commonRoleId, @jobMenu);
  117. DELETE FROM sys_role_menu WHERE role_id = @commonRoleId AND menu_id = @jobQuery;
  118. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@commonRoleId, @jobQuery);
  119. -- 申请管理权限(仅新增)
  120. DELETE FROM sys_role_menu WHERE role_id = @commonRoleId AND menu_id = @appMenu;
  121. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@commonRoleId, @appMenu);
  122. DELETE FROM sys_role_menu WHERE role_id = @commonRoleId AND menu_id = @appAdd;
  123. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@commonRoleId, @appAdd);
  124. DELETE FROM sys_role_menu WHERE role_id = @commonRoleId AND menu_id = @appQuery;
  125. INSERT INTO sys_role_menu (role_id, menu_id) VALUES (@commonRoleId, @appQuery);
  126. -- =============================
  127. -- 4. 确认权限分配
  128. -- =============================
  129. -- 输出验证信息
  130. SELECT '人事管理模块权限分配完成' AS Status;
  131. SELECT COUNT(*) AS AdminPermissionCount
  132. FROM sys_role_menu
  133. WHERE role_id = @adminRoleId
  134. AND menu_id IN (
  135. @rsParentMenu, @jobMenu, @publicJobMenu, @appMenu, @applicantMenu, @eduMenu, @expMenu,
  136. @jobQuery, @jobAdd, @jobEdit, @jobRemove, @jobExport,
  137. @appQuery, @appAdd, @appEdit, @appRemove, @appExport,
  138. @applicantQuery, @applicantAdd, @applicantEdit, @applicantRemove,
  139. @eduQuery, @eduAdd, @eduEdit, @eduRemove,
  140. @expQuery, @expAdd, @expEdit, @expRemove
  141. );
  142. SELECT COUNT(*) AS CommonUserPermissionCount
  143. FROM sys_role_menu
  144. WHERE role_id = @commonRoleId
  145. AND menu_id IN (@rsParentMenu, @publicJobMenu, @jobMenu, @jobQuery, @appMenu, @appAdd, @appQuery);