|
@@ -5,15 +5,15 @@ import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
-import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
|
|
|
|
-import com.citu.module.menduner.system.enums.MendunerStatusEnum;
|
|
|
|
import com.citu.framework.common.util.collection.CollectionUtils;
|
|
import com.citu.framework.common.util.collection.CollectionUtils;
|
|
import com.citu.framework.datapermission.core.annotation.DataPermission;
|
|
import com.citu.framework.datapermission.core.annotation.DataPermission;
|
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.permission.MdeRoleDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.permission.MdeRoleDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.permission.MdeUserRoleDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.permission.MdeUserRoleDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
|
|
import com.citu.module.menduner.system.dal.mysql.permission.MdeUserRoleMapper;
|
|
import com.citu.module.menduner.system.dal.mysql.permission.MdeUserRoleMapper;
|
|
import com.citu.module.menduner.system.dal.redis.RedisKeyConstants;
|
|
import com.citu.module.menduner.system.dal.redis.RedisKeyConstants;
|
|
|
|
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
|
|
import com.citu.module.menduner.system.enums.enterprise.EnterpriseUserTypeEnum;
|
|
import com.citu.module.menduner.system.enums.enterprise.EnterpriseUserTypeEnum;
|
|
import com.citu.module.menduner.system.enums.permission.MdeDefaultRoleEnum;
|
|
import com.citu.module.menduner.system.enums.permission.MdeDefaultRoleEnum;
|
|
import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
|
|
import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
|
|
@@ -22,7 +22,6 @@ import com.citu.module.menduner.system.service.user.MdeUserService;
|
|
import com.citu.module.system.api.permission.dto.DataPermissionRespDTO;
|
|
import com.citu.module.system.api.permission.dto.DataPermissionRespDTO;
|
|
import com.citu.module.system.enums.permission.DataScopeEnum;
|
|
import com.citu.module.system.enums.permission.DataScopeEnum;
|
|
import com.google.common.annotations.VisibleForTesting;
|
|
import com.google.common.annotations.VisibleForTesting;
|
|
-import com.google.common.base.Suppliers;
|
|
|
|
import com.google.common.collect.Sets;
|
|
import com.google.common.collect.Sets;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.cache.annotation.CacheEvict;
|
|
import org.springframework.cache.annotation.CacheEvict;
|
|
@@ -35,7 +34,6 @@ import java.util.Collection;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
-import java.util.function.Supplier;
|
|
|
|
|
|
|
|
import static com.citu.framework.common.util.collection.CollectionUtils.convertSet;
|
|
import static com.citu.framework.common.util.collection.CollectionUtils.convertSet;
|
|
import static com.citu.framework.common.util.json.JsonUtils.toJsonString;
|
|
import static com.citu.framework.common.util.json.JsonUtils.toJsonString;
|
|
@@ -153,7 +151,7 @@ public class MdePermissionServiceImpl implements MdePermissionService {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@DSTransactional // 单机+多数据源方案,使用 @DSTransactional 保证本地事务,以及数据源的切换
|
|
@DSTransactional // 单机+多数据源方案,使用 @DSTransactional 保证本地事务,以及数据源的切换
|
|
- public void assignUserRoleByDefault(Long userId,MdeDefaultRoleEnum roleEnum) {
|
|
|
|
|
|
+ public void assignUserRoleByDefault(Long userId, MdeDefaultRoleEnum roleEnum) {
|
|
// 获得默认角色信息
|
|
// 获得默认角色信息
|
|
MdeRoleDO role = mdeRoleService.getRoleByDefault(roleEnum);
|
|
MdeRoleDO role = mdeRoleService.getRoleByDefault(roleEnum);
|
|
MdeUserRoleDO entity = new MdeUserRoleDO();
|
|
MdeUserRoleDO entity = new MdeUserRoleDO();
|
|
@@ -204,7 +202,12 @@ public class MdePermissionServiceImpl implements MdePermissionService {
|
|
@Override
|
|
@Override
|
|
@DataPermission(enable = false) // 关闭数据权限,不然就会出现递归获取数据权限的问题
|
|
@DataPermission(enable = false) // 关闭数据权限,不然就会出现递归获取数据权限的问题
|
|
public DataPermissionRespDTO getDataPermission(Long userId) {
|
|
public DataPermissionRespDTO getDataPermission(Long userId) {
|
|
|
|
+ return getDataPermission(userId, null);
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ @DataPermission(enable = false) // 关闭数据权限,不然就会出现递归获取数据权限的问题
|
|
|
|
+ public DataPermissionRespDTO getDataPermission(Long userId, Long enterpriseId) {
|
|
DataPermissionRespDTO result = new DataPermissionRespDTO();
|
|
DataPermissionRespDTO result = new DataPermissionRespDTO();
|
|
MdeUserDO user = userService.getMdeUser(userId);
|
|
MdeUserDO user = userService.getMdeUser(userId);
|
|
// 用户信息不存在,则没有任何数据权限
|
|
// 用户信息不存在,则没有任何数据权限
|
|
@@ -214,7 +217,6 @@ public class MdePermissionServiceImpl implements MdePermissionService {
|
|
|
|
|
|
// 获得用户的角色
|
|
// 获得用户的角色
|
|
List<MdeRoleDO> roles = getEnableUserRoleListByUserIdFromCache(userId);
|
|
List<MdeRoleDO> roles = getEnableUserRoleListByUserIdFromCache(userId);
|
|
-
|
|
|
|
// 如果角色为空,则只能查看自己
|
|
// 如果角色为空,则只能查看自己
|
|
if (CollUtil.isEmpty(roles)) {
|
|
if (CollUtil.isEmpty(roles)) {
|
|
result.setSelf(true);
|
|
result.setSelf(true);
|
|
@@ -222,7 +224,8 @@ public class MdePermissionServiceImpl implements MdePermissionService {
|
|
}
|
|
}
|
|
|
|
|
|
// 获得用户的部门编号的缓存,通过 Guava 的 Suppliers 惰性求值,即有且仅有第一次发起 DB 的查询
|
|
// 获得用户的部门编号的缓存,通过 Guava 的 Suppliers 惰性求值,即有且仅有第一次发起 DB 的查询
|
|
- EnterpriseUserBindDO enterpriseUserBind = enterpriseUserBindService.getEnterpriseUserBindById(userId);
|
|
|
|
|
|
+ EnterpriseUserBindDO enterpriseUserBind = enterpriseUserBindService
|
|
|
|
+ .selectByEnterpriseIdAndUserId(enterpriseId,userId);
|
|
if (enterpriseUserBind == null) {
|
|
if (enterpriseUserBind == null) {
|
|
// 找不到企业用户 or 禁用了
|
|
// 找不到企业用户 or 禁用了
|
|
return result;
|
|
return result;
|
|
@@ -262,7 +265,7 @@ public class MdePermissionServiceImpl implements MdePermissionService {
|
|
}
|
|
}
|
|
// 情况五,SELF
|
|
// 情况五,SELF
|
|
if (Objects.equals(role.getDataScope(), DataScopeEnum.SELF.getScope())) {
|
|
if (Objects.equals(role.getDataScope(), DataScopeEnum.SELF.getScope())) {
|
|
- if(!EnterpriseUserTypeEnum.ADMIN.getType()
|
|
|
|
|
|
+ if (!EnterpriseUserTypeEnum.ADMIN.getType()
|
|
.equals(enterpriseUserBind.getUserType())) {
|
|
.equals(enterpriseUserBind.getUserType())) {
|
|
// 管理员 包含所有权限, 所以不加入自己的id权限
|
|
// 管理员 包含所有权限, 所以不加入自己的id权限
|
|
result.setSelf(true);
|
|
result.setSelf(true);
|
|
@@ -274,6 +277,4 @@ public class MdePermissionServiceImpl implements MdePermissionService {
|
|
}
|
|
}
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|