fix: 收敛日计划作业排序与授权范围
This commit is contained in:
@@ -90,22 +90,43 @@ WHERE menu.id = COALESCE(
|
||||
WHERE existing.parent_id=menu.id AND existing.permission=permission.code AND existing.deleted=b'0'
|
||||
);
|
||||
|
||||
-- 已授权日计划作业菜单的角色同步获得该页面全部按钮权限。
|
||||
-- 已授权日计划作业菜单的角色只自动获得查询权限,避免迁移过程扩大操作权限。
|
||||
INSERT INTO system_role_menu
|
||||
(role_id, menu_id, creator, create_time, updater, update_time, deleted, tenant_id)
|
||||
SELECT DISTINCT work_role.role_id, button.id, '1', NOW(), '1', NOW(), b'0', work_role.tenant_id
|
||||
SELECT DISTINCT work_role.role_id, query_button.id, '1', NOW(), '1', NOW(), b'0', work_role.tenant_id
|
||||
FROM system_role_menu work_role
|
||||
JOIN system_menu work_menu ON work_menu.id=work_role.menu_id
|
||||
AND work_menu.component='lms/daily-plan/work/index' AND work_menu.deleted=b'0'
|
||||
JOIN system_menu button ON button.parent_id=work_menu.id AND button.type=3 AND button.deleted=b'0'
|
||||
AND button.permission IN (
|
||||
'lms:daily-plan:query', 'lms:daily-plan:start', 'lms:daily-plan:operate',
|
||||
'lms:daily-plan:schedule', 'lms:daily-plan:strategy'
|
||||
)
|
||||
JOIN system_menu query_button ON query_button.parent_id=work_menu.id
|
||||
AND query_button.permission='lms:daily-plan:query' AND query_button.deleted=b'0'
|
||||
WHERE work_role.deleted=b'0'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM system_role_menu existing
|
||||
WHERE existing.role_id=work_role.role_id AND existing.menu_id=button.id
|
||||
WHERE existing.role_id=work_role.role_id AND existing.menu_id=query_button.id
|
||||
AND existing.tenant_id=work_role.tenant_id AND existing.deleted=b'0'
|
||||
);
|
||||
|
||||
-- 其他作业按钮仅映射角色迁移前已拥有的同名权限,不因新增作业菜单而提权。
|
||||
INSERT INTO system_role_menu
|
||||
(role_id, menu_id, creator, create_time, updater, update_time, deleted, tenant_id)
|
||||
SELECT DISTINCT work_role.role_id, work_button.id, '1', NOW(), '1', NOW(), b'0', work_role.tenant_id
|
||||
FROM system_role_menu work_role
|
||||
JOIN system_menu work_menu ON work_menu.id=work_role.menu_id
|
||||
AND work_menu.component='lms/daily-plan/work/index' AND work_menu.deleted=b'0'
|
||||
JOIN system_menu work_button ON work_button.parent_id=work_menu.id AND work_button.type=3
|
||||
AND work_button.permission IN (
|
||||
'lms:daily-plan:start', 'lms:daily-plan:operate',
|
||||
'lms:daily-plan:schedule', 'lms:daily-plan:strategy'
|
||||
) AND work_button.deleted=b'0'
|
||||
JOIN system_role_menu source_role ON source_role.role_id=work_role.role_id
|
||||
AND source_role.tenant_id=work_role.tenant_id AND source_role.deleted=b'0'
|
||||
JOIN system_menu source_button ON source_button.id=source_role.menu_id
|
||||
AND source_button.permission=work_button.permission AND source_button.deleted=b'0'
|
||||
AND source_button.id<>work_button.id
|
||||
WHERE work_role.deleted=b'0'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM system_role_menu existing
|
||||
WHERE existing.role_id=work_role.role_id AND existing.menu_id=work_button.id
|
||||
AND existing.tenant_id=work_role.tenant_id AND existing.deleted=b'0'
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user