Browse Source

1.govTokenDto中角色id列表改为角色简要信息

dev_shibei_match
wxz 5 years ago
parent
commit
29484abb06
  1. 10
      epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java
  2. 2
      epmet-auth/src/test/java/com/epmet/TokenGenTest.java
  3. 15
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/dto/GovTokenDto.java
  4. 5
      epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/LoginUserDetailsResultDTO.java
  5. 4
      epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java
  6. 4
      epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java
  7. 27
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/AccessServiceImpl.java
  8. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java

10
epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java

@ -8,6 +8,7 @@ import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.GovTokenDto;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.CpUserDetailRedis;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
@ -178,7 +179,7 @@ public class GovLoginServiceImpl implements GovLoginService {
govTokenDto.setGridIdList(getGridIdList(staffLatestAgency.getStaffId()));
CustomerAgencyDTO agency = getAgencyByStaffId(staffLatestAgency.getStaffId());
if (agency != null) {
govTokenDto.setRoleIdList(queryGovStaffRoleIds(staffLatestAgency.getStaffId(), agency.getId()));
govTokenDto.setRoleList(queryGovStaffRoles(staffLatestAgency.getStaffId(), agency.getId()));
}
govTokenDto.setOrgIdPath(getOrgIdPath(staffLatestAgency.getStaffId()));
@ -192,13 +193,14 @@ public class GovLoginServiceImpl implements GovLoginService {
* @param orgId
* @return
*/
public Set<String> queryGovStaffRoleIds(String staffId, String orgId) {
public List<GovTokenDto.Role> queryGovStaffRoles(String staffId, String orgId) {
StaffRoleFormDTO formDTO = new StaffRoleFormDTO();
formDTO.setStaffId(staffId);
formDTO.setOrgId(orgId);
Result<List<GovStaffRoleDTO>> gridResult = epmetUserFeignClient.getRolesOfStaff(formDTO);
if (!CollectionUtils.isEmpty(gridResult.getData())) {
return gridResult.getData().stream().map(role -> role.getId()).collect(Collectors.toSet());
//return gridResult.getData().stream().map(role -> role.getId()).collect(Collectors.toSet());
return ConvertUtils.sourceToTarget(gridResult.getData(), GovTokenDto.Role.class);
}
return null;
}
@ -355,7 +357,7 @@ public class GovLoginServiceImpl implements GovLoginService {
govTokenDto.setGridIdList(getGridIdList(staffId));
CustomerAgencyDTO agency = getAgencyByStaffId(staffId);
if (agency != null) {
govTokenDto.setRoleIdList(queryGovStaffRoleIds(staffId, agency.getId()));
govTokenDto.setRoleList(queryGovStaffRoles(staffId, agency.getId()));
}
govTokenDto.setOrgIdPath(getOrgIdPath(staffId));

2
epmet-auth/src/test/java/com/epmet/TokenGenTest.java

@ -78,7 +78,7 @@ public class TokenGenTest {
govTokenDto.setGridIdList(govLoginService.getGridIdList(staffId));
CustomerAgencyDTO agency = govLoginService.getAgencyByStaffId(staffId);
if (agency != null) {
govTokenDto.setRoleIdList(govLoginService.queryGovStaffRoleIds(staffId, agency.getId()));
govTokenDto.setRoleList(govLoginService.queryGovStaffRoles(staffId, agency.getId()));
}
govTokenDto.setOrgIdPath(govLoginService.getOrgIdPath(staffId));

15
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/dto/GovTokenDto.java

@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON;
import lombok.Data;
import java.io.Serializable;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
/**
@ -77,7 +79,18 @@ public class GovTokenDto extends BaseTokenDto implements Serializable {
/**
* 角色ID列表
*/
private Set<String> roleIdList;
private List<Role> roleList;
@Data
public static class Role {
private String id;
private String roleKey;
private String roleName;
public Role() {
}
}
@Override
public String toString() {

5
epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/LoginUserDetailsResultDTO.java

@ -1,7 +1,9 @@
package com.epmet.dto.result;
import com.epmet.commons.tools.security.dto.GovTokenDto;
import lombok.Data;
import java.util.List;
import java.util.Set;
@Data
@ -25,7 +27,8 @@ public class LoginUserDetailsResultDTO {
/**
* 角色列表
*/
private Set<String> roleIdList;
//private Set<String> roleIdList;
private List<GovTokenDto.Role> roleList;
/**
* 部门id列表

4
epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/feign/GovAccessFeignClient.java → epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java

@ -1,9 +1,9 @@
package com.epmet.dto.feign;
package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.feign.fallback.GovAccessFeignClientFallBack;
import com.epmet.dto.form.InitDefaultOperationsFormDTO;
import com.epmet.feign.fallback.GovAccessFeignClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

4
epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/feign/fallback/GovAccessFeignClientFallBack.java → epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java

@ -1,10 +1,10 @@
package com.epmet.dto.feign.fallback;
package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.feign.GovAccessFeignClient;
import com.epmet.dto.form.InitDefaultOperationsFormDTO;
import com.epmet.feign.GovAccessFeignClient;
import org.springframework.stereotype.Component;
/**

27
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/AccessServiceImpl.java

@ -5,6 +5,7 @@ import com.epmet.bean.OpeScopeFilterResultBean;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.GovTokenDto;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.CpUserDetailRedis;
import com.epmet.commons.tools.utils.Result;
@ -89,15 +90,15 @@ public class AccessServiceImpl implements AccessService {
if (userDetails == null) {
return false;
}
Set<String> roleIdList = userDetails.getRoleIdList();
if (CollectionUtils.isEmpty(roleIdList)) {
List<GovTokenDto.Role> roleList = userDetails.getRoleList();
if (CollectionUtils.isEmpty(roleList)) {
return false;
}
final Set<String> operationKeys = new HashSet<>();
roleIdList.stream().forEach(roleId -> {
List<RoleOpeScopeResultDTO> opeAndScopes = listAllRoleOperationScopesByRoleId(roleId);
roleList.stream().forEach(role -> {
List<RoleOpeScopeResultDTO> opeAndScopes = listAllRoleOperationScopesByRoleId(role.getId());
operationKeys.addAll(opeAndScopes.stream().map(opeAndScope -> opeAndScope.getOperationKey()).collect(Collectors.toSet()));
});
@ -118,12 +119,12 @@ public class AccessServiceImpl implements AccessService {
StringBuilder sb = new StringBuilder();
if (CollectionUtils.isEmpty(userDetails.getRoleIdList())) {
if (CollectionUtils.isEmpty(userDetails.getRoleList())) {
//logger.warn("用户{}没有配置任何角色,无法执行{}操作", form.getUserId(), form.getOperationKey());
throw new RenException(String.format("用户%s没有配置任何角色,无法执行%s操作", form.getUserId(), form.getOperationKey()));
}
OpeScopeFilterResultBean effectiveOpeScopes = getEffectiveOpeScopes(userDetails.getRoleIdList(), form.getOperationKey());
OpeScopeFilterResultBean effectiveOpeScopes = getEffectiveOpeScopes(userDetails.getRoleList(), form.getOperationKey());
if (effectiveOpeScopes.isAllScopes()) {
return sb.toString();
}
@ -249,12 +250,12 @@ public class AccessServiceImpl implements AccessService {
/**
* 计算有效操作范围
*/
public OpeScopeFilterResultBean getEffectiveOpeScopes(Set<String> roleIds, String reqiurePermission) {
public OpeScopeFilterResultBean getEffectiveOpeScopes(List<GovTokenDto.Role> roles, String reqiurePermission) {
// 根据角色列表查询操作范围列表
Set<RoleOpeScopeResultDTO> opeAndScopesOfThisOperation = new HashSet<>();
roleIds.forEach(roleId -> {
List<RoleOpeScopeResultDTO> opes = listAllRoleOperationScopesByRoleId(roleId);
roles.forEach(role -> {
List<RoleOpeScopeResultDTO> opes = listAllRoleOperationScopesByRoleId(role.getId());
if (!CollectionUtils.isEmpty(opes)) {
opes.forEach(ope -> {
if (reqiurePermission.equals(ope.getOperationKey())) {
@ -455,7 +456,7 @@ public class AccessServiceImpl implements AccessService {
// 获取机关单位中的角色
// 目前一个人只在一个单位下,所以不动态查询,如果后面需要一个人在多个单位,再改这里
//List<GovStaffRoleDTO> roleDTOS = queryGovStaffRoles(staffId, belongAgency.getId());
Set<String> roleIdList = userDetails.getRoleIdList();
List<GovTokenDto.Role> roleList = userDetails.getRoleList();
// 当前组织和所属组织的orgId路径,以及他们的上下级关系
String belongOrgIdPath = getOrgIdPath(belongAgency);
@ -464,9 +465,9 @@ public class AccessServiceImpl implements AccessService {
Set<String> filtedOps = new HashSet<>();
if (!CollectionUtils.isEmpty(roleIdList)) {
roleIdList.forEach(roleId -> {
List<RoleOpeScopeResultDTO> opeAndScopeDTO = listAllRoleOperationScopesByRoleId(roleId);
if (!CollectionUtils.isEmpty(roleList)) {
roleList.forEach(role -> {
List<RoleOpeScopeResultDTO> opeAndScopeDTO = listAllRoleOperationScopesByRoleId(role.getId());
filtedOps.addAll(filterOpesByScope(currOrgRelation, opeAndScopeDTO));
});
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java

@ -28,10 +28,10 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.GovStaffRoleDao;
import com.epmet.dao.GovStaffRoleTemplateDao;
import com.epmet.dto.GovStaffRoleDTO;
import com.epmet.dto.feign.GovAccessFeignClient;
import com.epmet.dto.form.InitDefaultOperationsFormDTO;
import com.epmet.dto.result.GovStaffRoleTemplateDTO;
import com.epmet.entity.GovStaffRoleEntity;
import com.epmet.feign.GovAccessFeignClient;
import com.epmet.redis.GovStaffRoleRedis;
import com.epmet.service.GovStaffRoleService;
import org.apache.commons.lang3.StringUtils;

Loading…
Cancel
Save