feat:(REQ-3282) 实现通过权限查询有权限的用户列表接口
This commit is contained in:
parent
346837150b
commit
3c12051105
@ -72,7 +72,7 @@ public class UserPermissionController implements UserPermissionApi {
|
||||
|
||||
@Override
|
||||
public ApiResult<List<PermissionUserResp>> listPermissionUser(ListPermissionUserReq req) {
|
||||
return null;
|
||||
return ApiResult.success(permissionService.listPermissionUser(req));
|
||||
}
|
||||
|
||||
private void check(ListUserPermissionReq req) {
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import cn.axzo.tyr.client.model.req.ListIdentityFromPermissionReq;
|
||||
import cn.axzo.tyr.client.model.res.ListIdentityFromPermissionResp;
|
||||
import cn.axzo.tyr.feign.enums.IdentityTypeEnum;
|
||||
import cn.axzo.tyr.feign.enums.RolePermissionTagEnum;
|
||||
import cn.axzo.tyr.feign.enums.RoleTypeEnum;
|
||||
@ -11,9 +13,11 @@ import cn.axzo.tyr.server.service.PermissionService;
|
||||
import cn.axzo.tyr.server.service.ProductPermissionCacheService;
|
||||
import cn.axzo.tyr.server.service.RolePermissionCacheService;
|
||||
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
|
||||
import cn.axzo.tyr.server.service.TyrSaasAuthService;
|
||||
import cn.axzo.tyr.server.service.WorkspaceProductService;
|
||||
import cn.axzo.tyr.server.util.FeatureCodeUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.collect.Sets;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
@ -42,6 +46,8 @@ public class PermissionServiceImpl implements PermissionService {
|
||||
private SaasFeatureResourceService saasFeatureResourceService;
|
||||
@Autowired
|
||||
private FeatureCodeUtil featureCodeUtil;
|
||||
@Autowired
|
||||
private TyrSaasAuthService tyrSaasAuthService;
|
||||
|
||||
/**
|
||||
* 1、查询用户的角色
|
||||
@ -138,8 +144,8 @@ public class PermissionServiceImpl implements PermissionService {
|
||||
|
||||
/**
|
||||
* 1、根据权限code及相关条件查询项目的权限
|
||||
* 2、查询单位、项目的所有role
|
||||
* 3、根据所有role查询角色信息
|
||||
* 2、根据项目查询所有role
|
||||
* 3、根据权限code查询有权限的角色信息
|
||||
* 4、根据项目的权限和role查询角色的权限信息
|
||||
* 5、解析有权限的admin role
|
||||
* 6、解析有权限的非admin role
|
||||
@ -152,7 +158,28 @@ public class PermissionServiceImpl implements PermissionService {
|
||||
*/
|
||||
@Override
|
||||
public List<PermissionUserResp> listPermissionUser(ListPermissionUserReq param) {
|
||||
return null;
|
||||
// 使用原来接口,因为目前没有做用户维度的权限缓存,对源代码优化成本高,效果不显著,没有多大意义,
|
||||
List<ListIdentityFromPermissionReq> list = param.getPermissionUsers().stream()
|
||||
.map(e -> JSONObject.parseObject(JSONObject.toJSONString(e), ListIdentityFromPermissionReq.class))
|
||||
.collect(Collectors.toList());
|
||||
List<ListIdentityFromPermissionResp> listIdentityFromPermissions = tyrSaasAuthService.batchListIdentityFromPermission(list);
|
||||
|
||||
return listIdentityFromPermissions.stream()
|
||||
.map(e -> PermissionUserResp.builder()
|
||||
.workspaceId(e.getWorkspaceId())
|
||||
.ouId(e.getOuId())
|
||||
.users(Optional.ofNullable(e.getUsers())
|
||||
.map(users -> users.stream()
|
||||
.map(user -> PermissionUserResp.User.builder()
|
||||
.identityId(user.getIdentityId())
|
||||
.identityType(user.getIdentityType())
|
||||
.personId(user.getPersonalId())
|
||||
.isSuperAdmin(user.isSuperAdmin())
|
||||
.build())
|
||||
.collect(Collectors.toSet()))
|
||||
.orElseGet(Sets::newHashSet))
|
||||
.build())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -345,6 +372,29 @@ public class PermissionServiceImpl implements PermissionService {
|
||||
.orElseGet(Lists::newArrayList)));
|
||||
}
|
||||
|
||||
// private Map<Long, List<ProductPermissionCacheService.PermissionDTO>> listWorkspacePermission(ListPermissionUserReq param) {
|
||||
//
|
||||
// WorkspaceProductService.ListWorkspacePermissionCacheParam listWorkspacePermissionCacheParam = WorkspaceProductService.ListWorkspacePermissionCacheParam.builder()
|
||||
// .workspacePermissions(param.getPermissionUsers().stream()
|
||||
// .map(e -> WorkspaceProductService.WorkspacePermission.builder()
|
||||
// .workspaceId(e.getWorkspaceId())
|
||||
// .featureCodes(Sets.newHashSet(e.getFeatureCode()))
|
||||
// .terminal(e.getTerminal())
|
||||
// .build())
|
||||
// .collect(Collectors.toList()))
|
||||
// .build();
|
||||
// return workspaceProductService.listWorkspacePermissionCached(listWorkspacePermissionCacheParam)
|
||||
// .stream()
|
||||
// .collect(Collectors.toMap(WorkspaceProductService.WorkspaceProductPermission::getWorkspaceId,
|
||||
// e -> Optional.ofNullable(e.getProductPermissions())
|
||||
// .map(productPermissions -> productPermissions.stream()
|
||||
// .map(WorkspaceProductService.ProductPermission::getPermissions)
|
||||
// .filter(Objects::nonNull)
|
||||
// .flatMap(Collection::stream)
|
||||
// .collect(Collectors.toList()))
|
||||
// .orElseGet(Lists::newArrayList)));
|
||||
// }
|
||||
|
||||
private List<SaasFeatureResourceService.SaasFeatureResourceCache> listAllSaasFeature(Map<Long, List<ProductPermissionCacheService.PermissionDTO>> workspacePermissions) {
|
||||
|
||||
Set<String> terminals = workspacePermissions.values().stream()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user