From 4e8dd706d568d1276ad82a0bf8f4ba13c5dac5ef Mon Sep 17 00:00:00 2001 From: 0慕容雪0 <ytu.mxh@163.com> Date: 星期五, 10 三月 2023 16:22:35 +0800 Subject: [PATCH] update ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java. DataScopeAspect,数据权限切面处理类中,用户多角色情况下,若所有角色都不包含传递过来的权限字符,这个时候sqlString也会为空,会导致用户拥有全部数据权限,所以要限制一下, 可以根据conditions集合是否为空,来判断循环时所有角色是否都是在判断权限字符时continue了。 复现方法: 在使用@DataScope注解时permission定义了值,这个值所有角色不包含。 --- ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml | 17 ++++++++++++----- 1 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index fd5f6a3..e90f6ba 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -111,6 +111,13 @@ where m.status = '0' and r.status = '0' and ur.user_id = #{userId} </select> + <select id="selectMenuPermsByRoleId" parameterType="Long" resultType="String"> + select distinct m.perms + from sys_menu m + left join sys_role_menu rm on m.menu_id = rm.menu_id + where m.status = '0' and rm.role_id = #{roleId} + </select> + <select id="selectMenuById" parameterType="Long" resultMap="SysMenuResult"> <include refid="selectMenuVo"/> where menu_id = #{menuId} @@ -130,10 +137,10 @@ <set> <if test="menuName != null and menuName != ''">menu_name = #{menuName},</if> <if test="parentId != null">parent_id = #{parentId},</if> - <if test="orderNum != null and orderNum != ''">order_num = #{orderNum},</if> + <if test="orderNum != null">order_num = #{orderNum},</if> <if test="path != null and path != ''">path = #{path},</if> <if test="component != null">component = #{component},</if> - <if test="query != null">query = #{query},</if> + <if test="query != null">`query` = #{query},</if> <if test="isFrame != null and isFrame != ''">is_frame = #{isFrame},</if> <if test="isCache != null and isCache != ''">is_cache = #{isCache},</if> <if test="menuType != null and menuType != ''">menu_type = #{menuType},</if> @@ -153,10 +160,10 @@ <if test="menuId != null and menuId != 0">menu_id,</if> <if test="parentId != null and parentId != 0">parent_id,</if> <if test="menuName != null and menuName != ''">menu_name,</if> - <if test="orderNum != null and orderNum != ''">order_num,</if> + <if test="orderNum != null">order_num,</if> <if test="path != null and path != ''">path,</if> <if test="component != null and component != ''">component,</if> - <if test="query != null and query != ''">query,</if> + <if test="query != null and query != ''">`query`,</if> <if test="isFrame != null and isFrame != ''">is_frame,</if> <if test="isCache != null and isCache != ''">is_cache,</if> <if test="menuType != null and menuType != ''">menu_type,</if> @@ -171,7 +178,7 @@ <if test="menuId != null and menuId != 0">#{menuId},</if> <if test="parentId != null and parentId != 0">#{parentId},</if> <if test="menuName != null and menuName != ''">#{menuName},</if> - <if test="orderNum != null and orderNum != ''">#{orderNum},</if> + <if test="orderNum != null">#{orderNum},</if> <if test="path != null and path != ''">#{path},</if> <if test="component != null and component != ''">#{component},</if> <if test="query != null and query != ''">#{query},</if> -- Gitblit v1.9.2