From bf52d4ec03f4635b6df16596c8d8785ea5f96f60 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 24 May 2021 18:26:51 +0800 Subject: [PATCH] =?UTF-8?q?fix:=201.=E7=94=A8=E6=88=B7=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=A4=9A=E4=B8=AA=E8=A7=92=E8=89=B2=20=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/mapper/ext/ExtPanelGroupMapper.xml | 32 +------------------ .../main/resources/db/migration/V5__auth.sql | 15 ++++----- 2 files changed, 7 insertions(+), 40 deletions(-) diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupMapper.xml index f180e527e2..9d35845522 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupMapper.xml @@ -38,38 +38,8 @@ create_time, panel_type, `name` AS label, - authInfo.`privileges` + get_auths(id,'panel',#{userId}) as `privileges` from (select GET_V_AUTH_MODEL_ID_P_USE (#{userId}, 'panel') cids) t,panel_group - left join - (SELECT - `sys_auth`.`auth_source` AS `auth_source`, - `sys_auth`.`auth_source_type` AS `auth_source_type`, - group_concat( sys_auth_detail.privilege_extend) AS `privileges` - FROM - ( - `sys_auth` - LEFT JOIN `sys_auth_detail` ON (( - `sys_auth`.`id` = `sys_auth_detail`.`auth_id` - ))) - where sys_auth_detail.privilege_value =1 - AND ( - ( - sys_auth.auth_target_type = 'dept' - AND sys_auth.auth_target = ( SELECT dept_id FROM sys_user WHERE user_id = #{userId} ) - ) - OR ( - sys_auth.auth_target_type = 'user' - AND sys_auth.auth_target = #{userId} - ) - OR ( - sys_auth.auth_target_type = 'role' - AND sys_auth.auth_target = ( SELECT role_id FROM sys_users_roles WHERE user_id = #{userId} ) - ) - ) - GROUP BY - `sys_auth`.`auth_source`, - `sys_auth`.`auth_source_type`) authInfo - on panel_group.id = authInfo.auth_source and authInfo.auth_source_type='panel' FIND_IN_SET(panel_group.id,cids) diff --git a/backend/src/main/resources/db/migration/V5__auth.sql b/backend/src/main/resources/db/migration/V5__auth.sql index 2babcf323a..ee4be3cb70 100644 --- a/backend/src/main/resources/db/migration/V5__auth.sql +++ b/backend/src/main/resources/db/migration/V5__auth.sql @@ -191,9 +191,8 @@ delimiter ; -- ---------------------------- DROP FUNCTION IF EXISTS `get_auths`; delimiter ;; -CREATE FUNCTION `get_auths`(authSource varchar(255),modelType varchar(255),userId varchar(255)) - RETURNS longtext CHARSET utf8 - READS SQL DATA +CREATE DEFINER=`root`@`%` FUNCTION `get_auths`(authSource varchar(255),modelType varchar(255),userId varchar(255)) RETURNS longtext CHARSET utf8 + READS SQL DATA BEGIN DECLARE oTemp longtext; @@ -211,7 +210,7 @@ FROM AND ( ( sys_auth.auth_target_type = 'dept' - AND sys_auth.auth_target = ( SELECT dept_id FROM sys_user WHERE user_id = userId ) + AND sys_auth.auth_target in ( SELECT dept_id FROM sys_user WHERE user_id = userId ) ) OR ( sys_auth.auth_target_type = 'user' @@ -219,7 +218,7 @@ FROM ) OR ( sys_auth.auth_target_type = 'role' - AND sys_auth.auth_target = ( SELECT role_id FROM sys_users_roles WHERE user_id = userId ) + AND sys_auth.auth_target in ( SELECT role_id FROM sys_users_roles WHERE user_id = userId ) ) ) GROUP BY @@ -303,8 +302,6 @@ delimiter ; -- ---------------------------- -- Function structure for GET_V_AUTH_MODEL_ID_P_USE -- ---------------------------- -DROP FUNCTION IF EXISTS `GET_V_AUTH_MODEL_ID_P_USE`; -delimiter ;; CREATE DEFINER=`root`@`%` FUNCTION `GET_V_AUTH_MODEL_ID_P_USE`(userId longtext,modelType varchar(255)) RETURNS longtext CHARSET utf8 READS SQL DATA BEGIN @@ -324,7 +321,7 @@ SELECT AND ( ( sys_auth.auth_target_type = 'dept' - AND sys_auth.auth_target = ( SELECT dept_id FROM sys_user WHERE user_id = userId ) + AND sys_auth.auth_target in ( SELECT dept_id FROM sys_user WHERE user_id = userId ) ) OR ( sys_auth.auth_target_type = 'user' @@ -332,7 +329,7 @@ SELECT ) OR ( sys_auth.auth_target_type = 'role' - AND sys_auth.auth_target = ( SELECT role_id FROM sys_users_roles WHERE user_id = userId ) + AND sys_auth.auth_target in ( SELECT role_id FROM sys_users_roles WHERE user_id = userId ) ) ) GROUP BY