Files
ycc-proxy-server/deploy/sql/admin_whitelist_menu_migration.sql
2026-06-18 17:49:30 +08:00

70 lines
2.0 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================
-- 模块白名单 - 后台菜单插入 SQL
-- 数据库ycc
-- 父菜单:产品管理 (48d0e129-a141-4a74-b519-7adc38d22d27)
-- 超级管理员741b7a39-a95d-4b9d-8dc0-84ee664d5fef
-- ============================================
-- 1. 插入「模块白名单」菜单(已存在则跳过)
INSERT INTO `admin_menu` (
`id`, `pid`, `name`, `path`, `component`, `redirect`, `meta`,
`status`, `type`, `sort`, `del_state`, `version`
)
SELECT
'c01e094d-6af8-11f1-bd31-dec53e82fe74',
'48d0e129-a141-4a74-b519-7adc38d22d27',
'whitelist',
'/product-manage/whitelist/list',
'/product-manage/whitelist/list',
NULL,
JSON_OBJECT('icon', 'lucide:shield-check', 'title', '模块白名单'),
1,
1,
0,
0,
0
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM `admin_menu`
WHERE `path` = '/product-manage/whitelist/list' AND `del_state` = 0
);
-- 2. 给「超级管理员」授权(关键:没有这一步菜单不会显示)
INSERT INTO `admin_role_menu` (`id`, `role_id`, `menu_id`, `del_state`, `version`)
SELECT
UUID(),
'741b7a39-a95d-4b9d-8dc0-84ee664d5fef',
m.`id`,
0,
0
FROM `admin_menu` m
WHERE m.`path` = '/product-manage/whitelist/list'
AND m.`del_state` = 0
AND NOT EXISTS (
SELECT 1 FROM `admin_role_menu` rm
WHERE rm.`role_id` = '741b7a39-a95d-4b9d-8dc0-84ee664d5fef'
AND rm.`menu_id` = m.`id`
AND rm.`del_state` = 0
);
-- 3. 给所有已拥有「模块列表」权限的角色同步授权
INSERT INTO `admin_role_menu` (`id`, `role_id`, `menu_id`, `del_state`, `version`)
SELECT
UUID(),
arm.`role_id`,
m.`id`,
0,
0
FROM `admin_role_menu` arm
JOIN `admin_menu` m ON m.`path` = '/product-manage/whitelist/list' AND m.`del_state` = 0
WHERE arm.`menu_id` = '7ef2b1d3-4578-4884-a735-915f60c87e13'
AND arm.`del_state` = 0
AND NOT EXISTS (
SELECT 1 FROM `admin_role_menu` x
WHERE x.`role_id` = arm.`role_id`
AND x.`menu_id` = m.`id`
AND x.`del_state` = 0
);
-- 执行后请重新登录管理后台