|
|
@@ -2,9 +2,9 @@ package com.ktg.framework.aspectj;
|
|
|
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
import com.ktg.common.annotation.MarsDataScope;
|
|
|
+import com.ktg.common.core.domain.BaseEntity;
|
|
|
import com.ktg.common.core.domain.entity.SysRole;
|
|
|
import com.ktg.common.core.domain.entity.SysUser;
|
|
|
-import com.ktg.common.core.domain.model.BaseBean;
|
|
|
import com.ktg.common.core.domain.model.LoginUser;
|
|
|
import com.ktg.common.utils.SecurityUtils;
|
|
|
import com.ktg.common.utils.StringUtils;
|
|
|
@@ -74,7 +74,7 @@ public class MarsDataScopeAspect {
|
|
|
SysUser currentUser = loginUser.getUser();
|
|
|
// 如果是超级管理员,则不过滤数据
|
|
|
if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) {
|
|
|
- dataScopeFilter(joinPoint, currentUser, controllerDataScope.workstationAlias(), allChildWorkstationByUserIds);
|
|
|
+ dataScopeFilter(joinPoint, currentUser, controllerDataScope.workstationAlias(), controllerDataScope.userAlias(), allChildWorkstationByUserIds);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -86,7 +86,7 @@ public class MarsDataScopeAspect {
|
|
|
* @param user 用户
|
|
|
* @param workstationAlias 别名
|
|
|
*/
|
|
|
- public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String workstationAlias, List<Long> allChildWorkstationByUserIds) {
|
|
|
+ public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String workstationAlias, String userAlias, List<Long> allChildWorkstationByUserIds) {
|
|
|
StringBuilder sqlString = new StringBuilder();
|
|
|
|
|
|
for (SysRole role : user.getRoles()) {
|
|
|
@@ -113,8 +113,8 @@ public class MarsDataScopeAspect {
|
|
|
workstationAlias, result));
|
|
|
} else if (MARS_DATA_SCOPE_SELF.equals(marsDataScope)) {
|
|
|
// 5.自身权限
|
|
|
- if (StringUtils.isNotBlank(workstationAlias)) {
|
|
|
- sqlString.append(StringUtils.format(" OR {}.create_by = {} ", workstationAlias, user.getUserId()));
|
|
|
+ if (StringUtils.isNotBlank(userAlias)) {
|
|
|
+ sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId()));
|
|
|
} else {
|
|
|
// 数据权限为仅本人且没有userAlias别名不查询任何数据
|
|
|
sqlString.append(" OR 1=0 ");
|
|
|
@@ -124,8 +124,8 @@ public class MarsDataScopeAspect {
|
|
|
|
|
|
if (StringUtils.isNotBlank(sqlString.toString())) {
|
|
|
Object params = joinPoint.getArgs()[0];
|
|
|
- if (StringUtils.isNotNull(params) && params instanceof BaseBean) {
|
|
|
- BaseBean baseBean = (BaseBean) params;
|
|
|
+ if (StringUtils.isNotNull(params) && params instanceof BaseEntity) {
|
|
|
+ BaseEntity baseBean = (BaseEntity) params;
|
|
|
baseBean.getParamMap().put(MARS_DATA_SCOPE, " AND (" + sqlString.substring(4) + ")");
|
|
|
}
|
|
|
}
|
|
|
@@ -136,8 +136,10 @@ public class MarsDataScopeAspect {
|
|
|
*/
|
|
|
private void clearDataScope(final JoinPoint joinPoint) {
|
|
|
Object paramMap = joinPoint.getArgs()[0];
|
|
|
- if (StringUtils.isNotNull(paramMap) && paramMap instanceof BaseBean) {
|
|
|
- BaseBean baseBean = (BaseBean) paramMap;
|
|
|
+ // if (StringUtils.isNotNull(paramMap) && paramMap instanceof BaseBean) {
|
|
|
+ // 为了兼容BaseEntity
|
|
|
+ if (StringUtils.isNotNull(paramMap) && paramMap instanceof BaseEntity) {
|
|
|
+ BaseEntity baseBean = (BaseEntity) paramMap;
|
|
|
baseBean.getParamMap().put(MARS_DATA_SCOPE, "");
|
|
|
}
|
|
|
}
|