20261009_add_member_activation_button_permission.sql 2.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. -- 会员开通按钮权限。可重复执行。
  2. -- 1) 在 UserList 菜单下挂 type=3(button) 的「用户会员开通」按钮。
  3. INSERT INTO `sa_system_menu` (
  4. `parent_id`, `name`, `code`, `slug`, `type`, `path`, `component`, `method`, `icon`, `sort`,
  5. `link_url`, `is_iframe`, `is_keep_alive`, `is_hidden`, `is_fixed_tab`, `is_full_page`,
  6. `generate_id`, `generate_key`, `status`, `remark`, `created_by`, `updated_by`, `create_time`, `update_time`, `delete_time`
  7. )
  8. SELECT user_menu.`id`, '用户会员开通', 'RentalUserMemberActivation', 'core:user:list:memberActivation', 3,
  9. NULL, NULL, 'POST', NULL, 110,
  10. NULL, 2, 2, 2, 2, 2, 0, NULL, 1,
  11. '管理员对当前可见小程序租借用户开通或续费会员', 1, 1, NOW(), NOW(), NULL
  12. FROM `sa_system_menu` user_menu
  13. WHERE user_menu.`code` = 'UserList' AND user_menu.`delete_time` IS NULL
  14. AND NOT EXISTS (SELECT 1 FROM `sa_system_menu` WHERE `slug` = 'core:user:list:memberActivation' AND `delete_time` IS NULL);
  15. UPDATE `sa_system_menu`
  16. SET `name` = '用户会员开通', `method` = 'POST',
  17. `remark` = '管理员对当前可见小程序租借用户开通或续费会员', `update_time` = NOW()
  18. WHERE `slug` = 'core:user:list:memberActivation' AND `delete_time` IS NULL;
  19. -- 2) 已有 UserList 权限的角色自动获得该按钮。
  20. INSERT INTO `sa_system_role_menu` (`role_id`, `menu_id`)
  21. SELECT DISTINCT source_role.`role_id`, target_menu.`id`
  22. FROM `sa_system_role_menu` source_role
  23. INNER JOIN `sa_system_menu` source_menu
  24. ON source_menu.`id` = source_role.`menu_id`
  25. AND source_menu.`code` = 'UserList'
  26. AND source_menu.`delete_time` IS NULL
  27. INNER JOIN `sa_system_menu` target_menu
  28. ON target_menu.`slug` = 'core:user:list:memberActivation'
  29. AND target_menu.`delete_time` IS NULL
  30. LEFT JOIN `sa_system_role_menu` existing_role
  31. ON existing_role.`role_id` = source_role.`role_id`
  32. AND existing_role.`menu_id` = target_menu.`id`
  33. WHERE existing_role.`id` IS NULL;