update 原数据权限功能 标注过期 3.6.0 移除

This commit is contained in:
疯狂的狮子li 2021-12-08 13:49:07 +08:00
parent 2419130ce4
commit cbfa117c7e
2 changed files with 152 additions and 142 deletions

View File

@ -6,19 +6,27 @@ import java.lang.annotation.*;
* 数据权限过滤注解 * 数据权限过滤注解
* *
* @author ruoyi * @author ruoyi
* @deprecated 3.6.0 移除 {@link com.ruoyi.common.annotation.DataPermission}
*/ */
@Target(ElementType.METHOD) @Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Documented @Documented
@Deprecated
public @interface DataScope { public @interface DataScope {
/** /**
* 部门表的别名 * 部门表的别名
*/ */
String deptName() default ""; String deptAlias() default "";
/** /**
* 用户表的别名 * 用户表的别名
*/ */
String userName() default ""; String userAlias() default "";
/**
* 是否过滤用户权限
*/
boolean isUser() default false;
} }

View File

@ -1,140 +1,142 @@
//package com.ruoyi.framework.aspectj; package com.ruoyi.framework.aspectj;
//
//import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.annotation.DataScope;
//import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.BaseEntity;
//import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysRole;
//import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
//import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
//import com.ruoyi.common.core.service.UserService; import com.ruoyi.common.core.service.UserService;
//import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
//import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
//import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.spring.SpringUtils;
//import org.aspectj.lang.JoinPoint; import org.aspectj.lang.JoinPoint;
//import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
//import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Before;
//import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
//
///** /**
// * 数据过滤处理 * 数据过滤处理
// * *
// * @author Lion Li * @author Lion Li
// */ * @deprecated 3.6.0 移除 {@link com.ruoyi.framework.handler.PlusDataPermissionHandler}
//@Aspect */
//@Component @Aspect
//public class DataScopeAspect { @Component
// @Deprecated
// /** public class DataScopeAspect {
// * 全部数据权限
// */ /**
// public static final String DATA_SCOPE_ALL = "1"; * 全部数据权限
// */
// /** public static final String DATA_SCOPE_ALL = "1";
// * 自定数据权限
// */ /**
// public static final String DATA_SCOPE_CUSTOM = "2"; * 自定数据权限
// */
// /** public static final String DATA_SCOPE_CUSTOM = "2";
// * 部门数据权限
// */ /**
// public static final String DATA_SCOPE_DEPT = "3"; * 部门数据权限
// */
// /** public static final String DATA_SCOPE_DEPT = "3";
// * 部门及以下数据权限
// */ /**
// public static final String DATA_SCOPE_DEPT_AND_CHILD = "4"; * 部门及以下数据权限
// */
// /** public static final String DATA_SCOPE_DEPT_AND_CHILD = "4";
// * 仅本人数据权限
// */ /**
// public static final String DATA_SCOPE_SELF = "5"; * 仅本人数据权限
// */
// /** public static final String DATA_SCOPE_SELF = "5";
// * 数据权限过滤关键字
// */ /**
// public static final String DATA_SCOPE = "dataScope"; * 数据权限过滤关键字
// */
// @Before("@annotation(controllerDataScope)") public static final String DATA_SCOPE = "dataScope";
// public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable {
// clearDataScope(point); @Before("@annotation(controllerDataScope)")
// handleDataScope(point, controllerDataScope); public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable {
// } clearDataScope(point);
// handleDataScope(point, controllerDataScope);
// protected void handleDataScope(final JoinPoint joinPoint, DataScope controllerDataScope) { }
// // 获取当前的用户
// LoginUser loginUser = SecurityUtils.getLoginUser(); protected void handleDataScope(final JoinPoint joinPoint, DataScope controllerDataScope) {
// if (StringUtils.isNotNull(loginUser)) { // 获取当前的用户
// SysUser currentUser = SpringUtils.getBean(UserService.class).selectUserById(loginUser.getUserId()); LoginUser loginUser = SecurityUtils.getLoginUser();
// // 如果是超级管理员则不过滤数据 if (StringUtils.isNotNull(loginUser)) {
// if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) { SysUser currentUser = SpringUtils.getBean(UserService.class).selectUserById(loginUser.getUserId());
// dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(), // 如果是超级管理员则不过滤数据
// controllerDataScope.userAlias(), controllerDataScope.isUser()); if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) {
// } dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(),
// } controllerDataScope.userAlias(), controllerDataScope.isUser());
// } }
// }
// /** }
// * 数据范围过滤
// * /**
// * @param joinPoint 切点 * 数据范围过滤
// * @param user 用户 *
// * @param userAlias 别名 * @param joinPoint 切点
// */ * @param user 用户
// public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, boolean isUser) { * @param userAlias 别名
// StringBuilder sqlString = new StringBuilder(); */
// public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, boolean isUser) {
// // "." 提取出,不写别名为单表查询,写别名为多表查询 StringBuilder sqlString = new StringBuilder();
// deptAlias = StringUtils.isNotBlank(deptAlias) ? deptAlias + "." : "";
// userAlias = StringUtils.isNotBlank(userAlias) ? userAlias + "." : ""; // "." 提取出,不写别名为单表查询,写别名为多表查询
// deptAlias = StringUtils.isNotBlank(deptAlias) ? deptAlias + "." : "";
// for (SysRole role : user.getRoles()) { userAlias = StringUtils.isNotBlank(userAlias) ? userAlias + "." : "";
// String dataScope = role.getDataScope();
// if (DATA_SCOPE_ALL.equals(dataScope)) { for (SysRole role : user.getRoles()) {
// sqlString = new StringBuilder(); String dataScope = role.getDataScope();
// break; if (DATA_SCOPE_ALL.equals(dataScope)) {
// } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) { sqlString = new StringBuilder();
// sqlString.append(StringUtils.format( break;
// " OR {}dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) {
// deptAlias, role.getRoleId())); sqlString.append(StringUtils.format(
// } else if (DATA_SCOPE_DEPT.equals(dataScope)) { " OR {}dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ",
// sqlString.append(StringUtils.format(" OR {}dept_id = {} ", deptAlias, role.getRoleId()));
// deptAlias, user.getDeptId())); } else if (DATA_SCOPE_DEPT.equals(dataScope)) {
// } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) { sqlString.append(StringUtils.format(" OR {}dept_id = {} ",
// sqlString.append(StringUtils.format( deptAlias, user.getDeptId()));
// " OR {}dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) {
// deptAlias, user.getDeptId(), user.getDeptId())); sqlString.append(StringUtils.format(
// } else if (DATA_SCOPE_SELF.equals(dataScope)) { " OR {}dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )",
// if (isUser) { deptAlias, user.getDeptId(), user.getDeptId()));
// sqlString.append(StringUtils.format(" OR {}user_id = {} ", } else if (DATA_SCOPE_SELF.equals(dataScope)) {
// userAlias, user.getUserId())); if (isUser) {
// } else { sqlString.append(StringUtils.format(" OR {}user_id = {} ",
// // 数据权限为仅本人且没有userAlias别名不查询任何数据 userAlias, user.getUserId()));
// sqlString.append(" OR 1=0 "); } else {
// } // 数据权限为仅本人且没有userAlias别名不查询任何数据
// } sqlString.append(" OR 1=0 ");
// } }
// }
// if (StringUtils.isNotBlank(sqlString.toString())) { }
// putDataScope(joinPoint, sqlString.substring(4));
// } if (StringUtils.isNotBlank(sqlString.toString())) {
// } putDataScope(joinPoint, sqlString.substring(4));
// }
// /** }
// * 拼接权限sql前先清空params.dataScope参数防止注入
// */ /**
// private void clearDataScope(final JoinPoint joinPoint) { * 拼接权限sql前先清空params.dataScope参数防止注入
// Object params = joinPoint.getArgs()[0]; */
// if (StringUtils.isNotNull(params)) { private void clearDataScope(final JoinPoint joinPoint) {
// putDataScope(joinPoint, ""); Object params = joinPoint.getArgs()[0];
// } if (StringUtils.isNotNull(params)) {
// } putDataScope(joinPoint, "");
// }
// private static void putDataScope(JoinPoint joinPoint, String sql) { }
// Object params = joinPoint.getArgs()[0];
// if (StringUtils.isNotNull(params)) { private static void putDataScope(JoinPoint joinPoint, String sql) {
// if (params instanceof BaseEntity) { Object params = joinPoint.getArgs()[0];
// BaseEntity baseEntity = (BaseEntity) params; if (StringUtils.isNotNull(params)) {
// baseEntity.getParams().put(DATA_SCOPE, sql); if (params instanceof BaseEntity) {
// } BaseEntity baseEntity = (BaseEntity) params;
// } baseEntity.getParams().put(DATA_SCOPE, sql);
// } }
//} }
}
}