rs-role-permissions-mysql.sql 10 KB

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