✨ 角色菜单数据权限替代用户级组织/客商权限

将后台数据权限迁移到角色×菜单配置,运行时按 menuCode 解析;组织树取最宽合并;停用用户侧组织与客商授权过滤。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-27 04:05:01 +08:00
parent 18065d6ae4
commit 8737c4b5f9
34 changed files with 1640 additions and 160 deletions
@@ -0,0 +1,28 @@
-- 角色菜单数据权限:按角色×菜单配置组织数据范围(默认全部组织)
CREATE TABLE IF NOT EXISTS `blade_role_menu_data_scope` (
`id` bigint NOT NULL COMMENT '主键',
`tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
`role_id` bigint NOT NULL COMMENT '角色主键',
`menu_id` bigint NOT NULL COMMENT '菜单主键',
`scope_type` tinyint NOT NULL DEFAULT 2 COMMENT '数据权限:1所在部门及下级 2全部组织 3本人创建 4自定义组织',
`create_user` bigint NULL DEFAULT NULL COMMENT '创建人',
`create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_user` bigint NULL DEFAULT NULL COMMENT '修改人',
`update_time` datetime NULL DEFAULT NULL COMMENT '修改时间',
`status` int NULL DEFAULT 1 COMMENT '状态',
`is_deleted` int NULL DEFAULT 0 COMMENT '是否已删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_role_menu_data_scope` (`role_id`, `menu_id`) USING BTREE,
KEY `idx_role_menu_data_scope_menu` (`menu_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='角色菜单数据权限';
-- 角色菜单数据权限-自定义组织明细
CREATE TABLE IF NOT EXISTS `blade_role_menu_data_scope_dept` (
`id` bigint NOT NULL COMMENT '主键',
`scope_id` bigint NOT NULL COMMENT '角色菜单数据权限主键',
`dept_id` bigint NOT NULL COMMENT '组织主键',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_role_menu_data_scope_dept` (`scope_id`, `dept_id`) USING BTREE,
KEY `idx_role_menu_data_scope_dept_dept` (`dept_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='角色菜单数据权限自定义组织';