提交者
Gitee
update ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java.
DataScopeAspect,数据权限切面处理类中,用户多角色情况下,若所有角色都不包含传递过来的权限字符,这个时候sqlString也会为空,会导致用户拥有全部数据权限,所以要限制一下, 可以根据conditions集合是否为空,来判断循环时所有角色是否都是在判断权限字符时continue了。 复现方法: 在使用@DataScope注解时permission定义了值,这个值所有角色不包含。 Signed-off-by: 0慕容雪0 <ytu.mxh@163.com>
正在显示
1 个修改的文件
包含
6 行增加
和
0 行删除
| @@ -141,6 +141,12 @@ public class DataScopeAspect | @@ -141,6 +141,12 @@ public class DataScopeAspect | ||
| 141 | conditions.add(dataScope); | 141 | conditions.add(dataScope); |
| 142 | } | 142 | } |
| 143 | 143 | ||
| 144 | + // 多角色情况下,所有角色都不包含传递过来的权限字符,这个时候sqlString也会为空,所以要限制一下,不查询任何数据 | ||
| 145 | + if (StringUtils.isEmpty(conditions)) | ||
| 146 | + { | ||
| 147 | + sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); | ||
| 148 | + } | ||
| 149 | + | ||
| 144 | if (StringUtils.isNotBlank(sqlString.toString())) | 150 | if (StringUtils.isNotBlank(sqlString.toString())) |
| 145 | { | 151 | { |
| 146 | Object params = joinPoint.getArgs()[0]; | 152 | Object params = joinPoint.getArgs()[0]; |
-
请 注册 或 登录 后发表评论