125 lines
4.1 KiB
SQL
125 lines
4.1 KiB
SQL
CREATE TABLE IF NOT EXISTS chorus_admin_grouped_navigation_down_guard (
|
|
id TINYINT NOT NULL,
|
|
CONSTRAINT chk_chorus_admin_grouped_navigation_down_guard CHECK (id = 0)
|
|
) ENGINE=InnoDB;
|
|
|
|
DELETE FROM chorus_admin_grouped_navigation_down_guard;
|
|
INSERT INTO chorus_admin_grouped_navigation_down_guard (id)
|
|
SELECT 1
|
|
WHERE EXISTS (
|
|
SELECT 1
|
|
FROM sys_menu child
|
|
JOIN sys_menu parent ON parent.menu_id = child.parent_id
|
|
WHERE parent.path IN (
|
|
'/chorus/configuration',
|
|
'/chorus/monitoring',
|
|
'/chorus/access',
|
|
'/chorus/system'
|
|
)
|
|
AND child.path NOT IN (
|
|
'/chorus/providers',
|
|
'/chorus/models',
|
|
'/chorus/routes',
|
|
'/chorus/templates',
|
|
'/chorus/health',
|
|
'/chorus/generations',
|
|
'/chorus/users',
|
|
'/chorus/api-keys',
|
|
'/chorus/system/admins',
|
|
'/chorus/system/roles',
|
|
'/chorus/system/menus',
|
|
'/chorus/system/apis',
|
|
'/chorus/system/login-logs'
|
|
)
|
|
);
|
|
DROP TABLE chorus_admin_grouped_navigation_down_guard;
|
|
|
|
DELETE casbin
|
|
FROM sys_casbin_rule casbin
|
|
JOIN sys_api api
|
|
ON casbin.ptype = 'p'
|
|
AND casbin.v0 = 'chorus_operator'
|
|
AND casbin.v1 = api.path
|
|
AND casbin.v2 = api.action
|
|
JOIN sys_menu_api_rule menu_api ON menu_api.sys_api_id = api.id
|
|
JOIN sys_menu menu ON menu.menu_id = menu_api.menu_id
|
|
WHERE menu.path LIKE '/chorus/system/%';
|
|
|
|
DELETE menu_api
|
|
FROM sys_menu_api_rule menu_api
|
|
JOIN sys_menu menu ON menu.menu_id = menu_api.menu_id
|
|
WHERE menu.path IN (
|
|
'/chorus/system/admins',
|
|
'/chorus/system/roles',
|
|
'/chorus/system/menus',
|
|
'/chorus/system/apis',
|
|
'/chorus/system/login-logs'
|
|
);
|
|
|
|
DELETE FROM sys_api
|
|
WHERE handle LIKE 'chorus.system.%';
|
|
|
|
DELETE FROM sys_menu
|
|
WHERE path IN (
|
|
'/chorus/system/admins',
|
|
'/chorus/system/roles',
|
|
'/chorus/system/menus',
|
|
'/chorus/system/apis',
|
|
'/chorus/system/login-logs'
|
|
);
|
|
|
|
INSERT INTO sys_menu
|
|
(menu_name, title, icon, path, paths, menu_type, action, permission, parent_id, no_cache, breadcrumb, component, sort, visible, is_frame)
|
|
VALUES
|
|
('chorus', 'Chorus 运营', 'ri:magic-line', '/chorus', '', 'M', '', 'chorus:menu:view', 0, FALSE, 'Chorus 运营', 'Layout', 900, '0', '0')
|
|
ON DUPLICATE KEY UPDATE
|
|
menu_name = VALUES(menu_name), title = VALUES(title), icon = VALUES(icon), menu_type = VALUES(menu_type),
|
|
action = VALUES(action), permission = VALUES(permission), parent_id = VALUES(parent_id), no_cache = VALUES(no_cache),
|
|
breadcrumb = VALUES(breadcrumb), component = VALUES(component), sort = VALUES(sort), visible = VALUES(visible),
|
|
is_frame = VALUES(is_frame), deleted_at = NULL;
|
|
|
|
UPDATE sys_menu SET paths = CONCAT('/0/', menu_id) WHERE path = '/chorus';
|
|
|
|
UPDATE sys_menu child
|
|
JOIN (
|
|
SELECT '/chorus/providers' AS child_path, '上游服务商' AS title, 10 AS sort_order
|
|
UNION ALL SELECT '/chorus/models', '模型配置', 20
|
|
UNION ALL SELECT '/chorus/routes', '路由策略', 30
|
|
UNION ALL SELECT '/chorus/templates', '提示词模板', 40
|
|
UNION ALL SELECT '/chorus/health', '上游健康', 50
|
|
UNION ALL SELECT '/chorus/generations', '生成记录', 60
|
|
UNION ALL SELECT '/chorus/users', '用户管理', 70
|
|
UNION ALL SELECT '/chorus/api-keys', 'API 密钥', 80
|
|
) desired ON desired.child_path = child.path
|
|
JOIN sys_menu parent ON parent.path = '/chorus'
|
|
SET child.parent_id = parent.menu_id,
|
|
child.paths = CONCAT(parent.paths, '/', child.menu_id),
|
|
child.title = desired.title,
|
|
child.breadcrumb = CONCAT(parent.title, ' / ', desired.title),
|
|
child.sort = desired.sort_order,
|
|
child.deleted_at = NULL;
|
|
|
|
INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
|
|
SELECT role_record.role_id, menu.menu_id
|
|
FROM sys_role role_record
|
|
JOIN sys_menu menu ON menu.path IN (
|
|
'/chorus',
|
|
'/chorus/providers',
|
|
'/chorus/models',
|
|
'/chorus/routes',
|
|
'/chorus/templates',
|
|
'/chorus/health',
|
|
'/chorus/generations',
|
|
'/chorus/users',
|
|
'/chorus/api-keys'
|
|
)
|
|
WHERE role_record.role_key = 'chorus_operator';
|
|
|
|
DELETE FROM sys_menu
|
|
WHERE path IN (
|
|
'/chorus/configuration',
|
|
'/chorus/monitoring',
|
|
'/chorus/access',
|
|
'/chorus/system'
|
|
);
|