Files
leaudit-platform-frontend/database/init_role_route_permissions.sql
T
2025-12-05 00:09:32 +08:00

201 lines
7.0 KiB
SQL

-- ============================================================
-- 角色路由权限初始化脚本
-- 说明:为各角色分配路由权限(只分配一级菜单权限,子路由自动继承)
-- 生成时间: 2025-11-17
-- ============================================================
-- 清空现有权限(如果需要重新初始化)
-- TRUNCATE TABLE role_route;
-- ============================================================
-- 1. 超级管理员 (super_admin) - 拥有所有权限
-- ============================================================
INSERT INTO role_route (role_id, route_id)
SELECT 12, id FROM sys_routes WHERE parent_id IS NULL AND is_hidden = false;
-- ============================================================
-- 2. 系统管理员 (admin) - 拥有所有权限
-- ============================================================
INSERT INTO role_route (role_id, route_id)
SELECT 1, id FROM sys_routes WHERE parent_id IS NULL AND is_hidden = false;
-- ============================================================
-- 3. 系统管理员 (system_admin) - 拥有所有权限
-- ============================================================
INSERT INTO role_route (role_id, route_id)
SELECT 13, id FROM sys_routes WHERE parent_id IS NULL AND is_hidden = false;
-- ============================================================
-- 4. 业务管理员 (business_admin) - 核心业务权限
-- ============================================================
INSERT INTO role_route (role_id, route_id)
SELECT 14, id FROM sys_routes
WHERE parent_id IS NULL AND is_hidden = false
AND route_path IN (
'/home', -- 系统概览
'/documents', -- 文档管理
'/rules', -- 评查规则库
'/contract-template', -- 合同模板
'/cross-checking', -- 交叉评查
'/chat-with-llm' -- AI法务助手
);
-- ============================================================
-- 5. 文档管理员 (document_admin) - 文档相关权限
-- ============================================================
INSERT INTO role_route (role_id, route_id)
SELECT 15, id FROM sys_routes
WHERE parent_id IS NULL AND is_hidden = false
AND route_path IN (
'/home', -- 系统概览
'/documents', -- 文档管理
'/rules', -- 评查规则库
'/contract-template' -- 合同模板
);
-- ============================================================
-- 6. 评查管理员 (evaluation_admin) - 评查相关权限
-- ============================================================
INSERT INTO role_route (role_id, route_id)
SELECT 16, id FROM sys_routes
WHERE parent_id IS NULL AND is_hidden = false
AND route_path IN (
'/home', -- 系统概览
'/documents', -- 文档管理
'/rules', -- 评查规则库
'/chat-with-llm' -- AI法务助手
);
-- ============================================================
-- 7. 交叉评查管理员 (crossreview_admin) - 交叉评查权限
-- ============================================================
INSERT INTO role_route (role_id, route_id)
SELECT 17, id FROM sys_routes
WHERE parent_id IS NULL AND is_hidden = false
AND route_path IN (
'/home', -- 系统概览
'/documents', -- 文档管理
'/cross-checking' -- 交叉评查
);
-- ============================================================
-- 8. 评查员 (auditor) - 执行评查任务
-- ============================================================
INSERT INTO role_route (role_id, route_id)
SELECT 18, id FROM sys_routes
WHERE parent_id IS NULL AND is_hidden = false
AND route_path IN (
'/home', -- 系统概览
'/documents', -- 文档管理
'/rules', -- 评查规则库
'/cross-checking', -- 交叉评查
'/chat-with-llm' -- AI法务助手
);
-- ============================================================
-- 9. 上传者 (uploader) - 仅上传文档
-- ============================================================
INSERT INTO role_route (role_id, route_id)
SELECT 19, id FROM sys_routes
WHERE parent_id IS NULL AND is_hidden = false
AND route_path IN (
'/home', -- 系统概览
'/documents' -- 文档管理
);
-- ============================================================
-- 10. 部门主管 (deptLeader) - 部门管理权限
-- ============================================================
INSERT INTO role_route (role_id, route_id)
SELECT 3, id FROM sys_routes
WHERE parent_id IS NULL AND is_hidden = false
AND route_path IN (
'/home', -- 系统概览
'/documents', -- 文档管理
'/rules', -- 评查规则库
'/contract-template', -- 合同模板
'/cross-checking', -- 交叉评查
'/chat-with-llm' -- AI法务助手
);
-- ============================================================
-- 11. 小组组长 (groupLeader) - 小组管理权限
-- ============================================================
INSERT INTO role_route (role_id, route_id)
SELECT 4, id FROM sys_routes
WHERE parent_id IS NULL AND is_hidden = false
AND route_path IN (
'/home', -- 系统概览
'/documents', -- 文档管理
'/rules', -- 评查规则库
'/cross-checking', -- 交叉评查
'/chat-with-llm' -- AI法务助手
);
-- ============================================================
-- 12. 普通员工 (common) - 基本权限
-- ============================================================
INSERT INTO role_route (role_id, route_id)
SELECT 2, id FROM sys_routes
WHERE parent_id IS NULL AND is_hidden = false
AND route_path IN (
'/home', -- 系统概览
'/documents', -- 文档管理
'/chat-with-llm' -- AI法务助手
);
-- ============================================================
-- 13. 访客 (guest) - 只读权限
-- ============================================================
INSERT INTO role_route (role_id, route_id)
SELECT 20, id FROM sys_routes
WHERE parent_id IS NULL AND is_hidden = false
AND route_path IN (
'/home' -- 系统概览
);
-- ============================================================
-- 验证权限配置
-- ============================================================
-- 查看各角色的路由权限数量
SELECT
r.role_name,
r.role_key,
COUNT(rr.route_id) as route_count
FROM roles r
LEFT JOIN role_route rr ON r.id = rr.role_id
GROUP BY r.id, r.role_name, r.role_key
ORDER BY route_count DESC;
-- 查看管理员角色的具体路由权限
SELECT
r.role_name,
sr.route_path,
sr.route_title,
sr.sort_order
FROM role_route rr
JOIN roles r ON rr.role_id = r.id
JOIN sys_routes sr ON rr.route_id = sr.id
WHERE r.role_key IN ('admin', 'super_admin')
ORDER BY r.role_name, sr.sort_order;
-- ============================================================
-- 完成!
-- ============================================================
-- 提示:执行此脚本后,请清除浏览器缓存并重新登录系统