71 lines
3.3 KiB
SQL
71 lines
3.3 KiB
SQL
-- =============================================
|
||
-- nginx配置管理平台 菜单 & 角色初始化 SQL
|
||
-- 系统编码: nginxServer
|
||
-- 执行位置: Mokee Gateway 数据库
|
||
-- =============================================
|
||
|
||
-- 0. 获取系统 ID
|
||
SET @system_id = (SELECT id FROM sys_system WHERE system_code = 'nginxServer' AND is_deleted = 0 LIMIT 1);
|
||
|
||
-- 1. 创建顶级菜单目录(用变量持有父菜单 UUID,子菜单直接引用)
|
||
SET @menu_nginx = REPLACE(UUID(),'-','');
|
||
|
||
INSERT INTO sys_menu (id, system_id, parent_id, menu_name, menu_path, component, icon, menu_type, sort_order, status) VALUES
|
||
(@menu_nginx, @system_id, '0', 'Nginx代理管理', '/nginx', 'Layout', 'Connection', 1, 1, 1);
|
||
|
||
-- 2. 创建子菜单(parent_id 直接用上面定义的变量)
|
||
INSERT INTO sys_menu (id, system_id, parent_id, menu_name, menu_path, component, icon, menu_type, sort_order, status) VALUES
|
||
(REPLACE(UUID(),'-',''), @system_id, @menu_nginx, 'Nginx转发管理', '/nginx-forwarding', 'views/NginxForwarding.vue', 'Connection', 2, 1, 1),
|
||
(REPLACE(UUID(),'-',''), @system_id, @menu_nginx, 'SSL证书管理', '/cert-management', 'views/CertManagement.vue', 'Key', 2, 2, 1),
|
||
(REPLACE(UUID(),'-',''), @system_id, @menu_nginx, 'DNS解析管理', '/dns-management', 'views/DnsManagement.vue', 'Link', 2, 3, 1);
|
||
|
||
-- 3. 创建角色(用变量持有角色 UUID)
|
||
SET @role_admin = REPLACE(UUID(),'-','');
|
||
SET @role_user = REPLACE(UUID(),'-','');
|
||
|
||
INSERT INTO sys_role (id, system_id, role_name, role_code, description, status) VALUES
|
||
(@role_admin, @system_id, '管理员', 'admin', '拥有全部权限', 1),
|
||
(@role_user, @system_id, '普通用户', 'user', '拥有基本权限', 1);
|
||
|
||
-- 4. 将本系统所有菜单分配给管理员角色
|
||
INSERT INTO sys_role_menu (id, role_id, menu_id)
|
||
SELECT REPLACE(UUID(),'-',''), @role_admin, m.id
|
||
FROM sys_menu m WHERE m.system_id = @system_id;
|
||
|
||
-- =============================================
|
||
-- 创建网关应用管理员账号
|
||
-- 角色: gateway-app-admin (只能看到自己绑定系统的数据)
|
||
-- =============================================
|
||
|
||
-- 5. 创建管理员用户(密码 admin123 的 BCrypt 密文,建议自行生成替换)
|
||
INSERT INTO sys_user (id, username, password, real_name, email, phone, status, is_deleted)
|
||
SELECT REPLACE(UUID(),'-',''), 'admin_nginxServer',
|
||
'$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iKTVKIUi',
|
||
'Nginx配置管理平台管理员', 'admin@nginxServer.com', NULL, 1, 0
|
||
FROM DUAL
|
||
WHERE NOT EXISTS (SELECT 1 FROM sys_user WHERE username = 'admin_nginxServer');
|
||
|
||
-- 6. 绑定管理员到 gateway 系统
|
||
INSERT INTO sys_user_system (id, user_id, system_id)
|
||
SELECT REPLACE(UUID(),'-',''), u.id, s.id
|
||
FROM sys_user u, sys_system s
|
||
WHERE u.username = 'admin_nginxServer'
|
||
AND s.system_code = 'gateway'
|
||
AND NOT EXISTS (
|
||
SELECT 1 FROM sys_user_system us
|
||
WHERE us.user_id = u.id AND us.system_id = s.id
|
||
);
|
||
|
||
-- 7. 分配 gateway-app-admin 角色(gateway 系统下的应用管理员角色)
|
||
INSERT INTO sys_user_role (id, user_id, role_id)
|
||
SELECT REPLACE(UUID(),'-',''), u.id, r.id
|
||
FROM sys_user u, sys_role r, sys_system s
|
||
WHERE u.username = 'admin_nginxServer'
|
||
AND r.role_code = 'gateway-app-admin'
|
||
AND r.system_id = s.id
|
||
AND s.system_code = 'gateway'
|
||
AND NOT EXISTS (
|
||
SELECT 1 FROM sys_user_role ur
|
||
WHERE ur.user_id = u.id AND ur.role_id = r.id
|
||
);
|