mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 08:13:44 +08:00 
			
		
		
		
	fix 修复数据权限 仅自己 相关问题
This commit is contained in:
		@@ -23,34 +23,39 @@ public enum DataScopeType {
 | 
			
		||||
    /**
 | 
			
		||||
     * 全部数据权限
 | 
			
		||||
     */
 | 
			
		||||
    ALL("1", ""),
 | 
			
		||||
    ALL("1", "", ""),
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 自定数据权限
 | 
			
		||||
     */
 | 
			
		||||
    CUSTOM("2", " #{#deptName} IN ( #{@sdss.getRoleCustom( #user.roleId )} ) "),
 | 
			
		||||
    CUSTOM("2", " #{#deptName} IN ( #{@sdss.getRoleCustom( #user.roleId )} ) ", ""),
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 部门数据权限
 | 
			
		||||
     */
 | 
			
		||||
    DEPT("3", " #{#deptName} = #{#user.deptId} "),
 | 
			
		||||
    DEPT("3", " #{#deptName} = #{#user.deptId} ", ""),
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 部门及以下数据权限
 | 
			
		||||
     */
 | 
			
		||||
    DEPT_AND_CHILD("4", " #{#deptName} IN ( #{@sdss.getDeptAndChild( #user.deptId )} )"),
 | 
			
		||||
    DEPT_AND_CHILD("4", " #{#deptName} IN ( #{@sdss.getDeptAndChild( #user.deptId )} )", ""),
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 仅本人数据权限
 | 
			
		||||
     */
 | 
			
		||||
    SELF("5", " #{#userName?:1} = #{#user.userId} ");
 | 
			
		||||
    SELF("5", " #{#userName} = #{#user.userId} " , " 1 = 0 ");
 | 
			
		||||
 | 
			
		||||
    private final String code;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 语法 采用 spel 模板表达式
 | 
			
		||||
     */
 | 
			
		||||
    private final String sql;
 | 
			
		||||
    private final String sqlTemplate;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 不满足 sqlTemplate 则填充
 | 
			
		||||
     */
 | 
			
		||||
    private final String elseSql;
 | 
			
		||||
 | 
			
		||||
    public static DataScopeType findCode(String code) {
 | 
			
		||||
        if (StringUtils.isBlank(code)) {
 | 
			
		||||
 
 | 
			
		||||
@@ -96,13 +96,14 @@ public class PlusDataPermissionHandler {
 | 
			
		||||
                    return "";
 | 
			
		||||
                }
 | 
			
		||||
                // 不包含 key 变量 则不处理
 | 
			
		||||
                if (!StringUtils.contains(type.getSql(), "#" + dataColumn.key())) {
 | 
			
		||||
                if (!StringUtils.contains(type.getSqlTemplate(), "#" + dataColumn.key())) {
 | 
			
		||||
                    sqlString.append(type.getElseSql());
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
                // 更新或删除需满足所有条件
 | 
			
		||||
                sqlString.append(isSelect ? " OR " : " AND ");
 | 
			
		||||
                // 解析sql模板并填充
 | 
			
		||||
                String sql = parser.parseExpression(type.getSql(), parserContext).getValue(context, String.class);
 | 
			
		||||
                String sql = parser.parseExpression(type.getSqlTemplate(), parserContext).getValue(context, String.class);
 | 
			
		||||
                sqlString.append(sql);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user