From 1b4f54983682156fbb86dcf5b82827c873d3f010 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Thu, 29 Jul 2021 10:41:04 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=E8=8F=9C=E5=8D=95=E6=9D=83=E9=99=90?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E5=A2=9E=E5=8A=A0=E6=98=BE=E7=A4=BA=E6=A0=87?= =?UTF-8?q?=E5=BF=97=EF=BC=8C=E5=8F=AF=E4=BB=A5=E5=8C=BA=E5=88=86=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E5=B8=88=E5=82=85=E6=8E=A5=E5=8F=97=E6=9D=83=E9=99=90?= =?UTF-8?q?=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ext/ExtPluginSysMenuMapper.xml | 4 +- .../db/migration/V17__update_auth.sql | 174 ++++++++++++++++++ 2 files changed, 176 insertions(+), 2 deletions(-) create mode 100644 backend/src/main/resources/db/migration/V17__update_auth.sql diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPluginSysMenuMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPluginSysMenuMapper.xml index 68dbb73c43..434097863b 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPluginSysMenuMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPluginSysMenuMapper.xml @@ -7,9 +7,9 @@ - INSERT INTO `plugin_sys_menu` ( menu_id, title, pid, sub_count, permission, hidden ) VALUES + INSERT INTO `plugin_sys_menu` ( menu_id, title, pid, sub_count, permission, hidden,i_frame ) VALUES - (#{menu.menuId},#{menu.title},#{menu.pid},#{menu.subCount},#{menu.permission},#{menu.hidden}) + (#{menu.menuId},#{menu.title},#{menu.pid},#{menu.subCount},#{menu.permission},#{menu.hidden},ifnull(#{menu.hidden},0)) diff --git a/backend/src/main/resources/db/migration/V17__update_auth.sql b/backend/src/main/resources/db/migration/V17__update_auth.sql new file mode 100644 index 0000000000..182c72d824 --- /dev/null +++ b/backend/src/main/resources/db/migration/V17__update_auth.sql @@ -0,0 +1,174 @@ +update sys_menu set i_frame = 0 where menu_id in (1,2,8,10,15,16,17,24,27,28,34,40,58); +update sys_menu set i_frame = 1 where menu_id not in (1,2,8,10,15,16,17,24,27,28,34,40,58); + + +DROP VIEW +IF + EXISTS `v_auth_model`; +CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `v_auth_model` AS SELECT +`sys_user`.`user_id` AS `id`, +`sys_user`.`username` AS `name`, +`sys_user`.`username` AS `label`, +'0' AS `pid`, +'leaf' AS `node_type`, +'user' AS `model_type`, +'user' AS `model_inner_type`, +'target' AS `auth_type`, +`sys_user`.`create_by` AS `create_by` +FROM + `sys_user` UNION ALL +SELECT + `sys_role`.`role_id` AS `id`, + `sys_role`.`name` AS `name`, + `sys_role`.`name` AS `label`, + '0' AS `pid`, + 'leaf' AS `node_type`, + 'role' AS `model_type`, + 'role' AS `model_inner_type`, + 'target' AS `auth_type`, + `sys_role`.`create_by` AS `create_by` +FROM + `sys_role` UNION ALL +SELECT + `sys_dept`.`dept_id` AS `id`, + `sys_dept`.`name` AS `name`, + `sys_dept`.`name` AS `lable`, + cast( `sys_dept`.`pid` AS CHAR charset utf8mb4 ) AS `pid`, +IF + (( `sys_dept`.`sub_count` = 0 ), 'leaf', 'spine' ) AS `node_type`, + 'dept' AS `model_type`, + 'dept' AS `model_inner_type`, + 'target' AS `auth_type`, + `sys_dept`.`create_by` AS `create_by` +FROM + `sys_dept` UNION ALL +SELECT + `datasource`.`id` AS `id`, + `datasource`.`name` AS `NAME`, + `datasource`.`name` AS `label`, + '0' AS `pid`, + 'leaf' AS `node_type`, + 'link' AS `model_type`, + `datasource`.`type` AS `model_inner_type`, + 'source' AS `auth_type`, + `datasource`.`create_by` AS `create_by` +FROM + `datasource` UNION ALL +SELECT + `dataset_group`.`id` AS `id`, + `dataset_group`.`name` AS `NAME`, + `dataset_group`.`name` AS `lable`, +IF + ( isnull( `dataset_group`.`pid` ), '0', `dataset_group`.`pid` ) AS `pid`, + 'spine' AS `node_type`, + 'dataset' AS `model_type`, + `dataset_group`.`type` AS `model_inner_type`, + 'source' AS `auth_type`, + `dataset_group`.`create_by` AS `create_by` +FROM + `dataset_group` UNION ALL +SELECT + `dataset_table`.`id` AS `id`, + `dataset_table`.`name` AS `NAME`, + `dataset_table`.`name` AS `lable`, + `dataset_table`.`scene_id` AS `pid`, + 'leaf' AS `node_type`, + 'dataset' AS `model_type`, + `dataset_table`.`type` AS `model_inner_type`, + 'source' AS `auth_type`, + `dataset_table`.`create_by` AS `create_by` +FROM + `dataset_table` UNION ALL +SELECT + `chart_group`.`id` AS `id`, + `chart_group`.`name` AS `name`, + `chart_group`.`name` AS `label`, +IF + ( isnull( `chart_group`.`pid` ), '0', `chart_group`.`pid` ) AS `pid`, + 'spine' AS `node_type`, + 'chart' AS `model_type`, + `chart_group`.`type` AS `model_inner_type`, + 'source' AS `auth_type`, + `chart_group`.`create_by` AS `create_by` +FROM + `chart_group` UNION ALL +SELECT + `chart_view`.`id` AS `id`, + `chart_view`.`name` AS `name`, + `chart_view`.`name` AS `label`, + `chart_view`.`scene_id` AS `pid`, + 'leaf' AS `node_type`, + 'chart' AS `model_type`, + `chart_view`.`type` AS `model_inner_type`, + 'source' AS `auth_type`, + `chart_view`.`create_by` AS `create_by` +FROM + `chart_view` UNION ALL +SELECT + `panel_group`.`id` AS `id`, + `panel_group`.`name` AS `NAME`, + `panel_group`.`name` AS `label`,( + CASE + `panel_group`.`id` + WHEN 'panel_list' THEN + '0' + WHEN 'default_panel' THEN + '0' ELSE `panel_group`.`pid` + END + ) AS `pid`, + IF + (( `panel_group`.`node_type` = 'folder' ), 'spine', 'leaf' ) AS `node_type`, + 'panel' AS `model_type`, + `panel_group`.`panel_type` AS `model_inner_type`, + 'source' AS `auth_type`, + `panel_group`.`create_by` AS `create_by` + FROM + `panel_group` UNION ALL + SELECT + `sys_menu`.`menu_id` AS `menu_id`, + `sys_menu`.`title` AS `name`, + `sys_menu`.`title` AS `label`, + `sys_menu`.`pid` AS `pid`, + IF + (( `sys_menu`.`sub_count` > 0 ), 'spine', 'leaf' ) AS `node_type`, + 'menu' AS `model_type`,( + CASE + `sys_menu`.`type` + WHEN 0 THEN + 'folder' + WHEN 1 THEN + 'menu' + WHEN 2 THEN + 'button' + END + ) AS `model_inner_type`, + 'source' AS `auth_type`, + `sys_menu`.`create_by` AS `create_by` + FROM + `sys_menu` + WHERE + (sys_menu.i_frame !=1 or sys_menu.i_frame is null) UNION ALL + SELECT + `plugin_sys_menu`.`menu_id` AS `menu_id`, + `plugin_sys_menu`.`title` AS `name`, + `plugin_sys_menu`.`title` AS `label`, + `plugin_sys_menu`.`pid` AS `pid`, + IF + (( `plugin_sys_menu`.`sub_count` > 0 ), 'spine', 'leaf' ) AS `node_type`, + 'menu' AS `model_type`,( + CASE + `plugin_sys_menu`.`type` + WHEN 0 THEN + 'folder' + WHEN 1 THEN + 'menu' + WHEN 2 THEN + 'button' + END + ) AS `model_inner_type`, + 'source' AS `auth_type`, + `plugin_sys_menu`.`create_by` AS `create_by` + FROM + `plugin_sys_menu` + WHERE + (plugin_sys_menu.i_frame !=1 or plugin_sys_menu.i_frame is null);