feat:(REQ-3282) 实现通过权限查询有权限的用户列表接口
This commit is contained in:
parent
346837150b
commit
3c12051105
@ -72,7 +72,7 @@ public class UserPermissionController implements UserPermissionApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResult<List<PermissionUserResp>> listPermissionUser(ListPermissionUserReq req) {
|
public ApiResult<List<PermissionUserResp>> listPermissionUser(ListPermissionUserReq req) {
|
||||||
return null;
|
return ApiResult.success(permissionService.listPermissionUser(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void check(ListUserPermissionReq req) {
|
private void check(ListUserPermissionReq req) {
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package cn.axzo.tyr.server.service.impl;
|
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.IdentityTypeEnum;
|
||||||
import cn.axzo.tyr.feign.enums.RolePermissionTagEnum;
|
import cn.axzo.tyr.feign.enums.RolePermissionTagEnum;
|
||||||
import cn.axzo.tyr.feign.enums.RoleTypeEnum;
|
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.ProductPermissionCacheService;
|
||||||
import cn.axzo.tyr.server.service.RolePermissionCacheService;
|
import cn.axzo.tyr.server.service.RolePermissionCacheService;
|
||||||
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
|
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.service.WorkspaceProductService;
|
||||||
import cn.axzo.tyr.server.util.FeatureCodeUtil;
|
import cn.axzo.tyr.server.util.FeatureCodeUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.compress.utils.Lists;
|
import org.apache.commons.compress.utils.Lists;
|
||||||
@ -42,6 +46,8 @@ public class PermissionServiceImpl implements PermissionService {
|
|||||||
private SaasFeatureResourceService saasFeatureResourceService;
|
private SaasFeatureResourceService saasFeatureResourceService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private FeatureCodeUtil featureCodeUtil;
|
private FeatureCodeUtil featureCodeUtil;
|
||||||
|
@Autowired
|
||||||
|
private TyrSaasAuthService tyrSaasAuthService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1、查询用户的角色
|
* 1、查询用户的角色
|
||||||
@ -138,8 +144,8 @@ public class PermissionServiceImpl implements PermissionService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 1、根据权限code及相关条件查询项目的权限
|
* 1、根据权限code及相关条件查询项目的权限
|
||||||
* 2、查询单位、项目的所有role
|
* 2、根据项目查询所有role
|
||||||
* 3、根据所有role查询角色信息
|
* 3、根据权限code查询有权限的角色信息
|
||||||
* 4、根据项目的权限和role查询角色的权限信息
|
* 4、根据项目的权限和role查询角色的权限信息
|
||||||
* 5、解析有权限的admin role
|
* 5、解析有权限的admin role
|
||||||
* 6、解析有权限的非admin role
|
* 6、解析有权限的非admin role
|
||||||
@ -152,7 +158,28 @@ public class PermissionServiceImpl implements PermissionService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<PermissionUserResp> listPermissionUser(ListPermissionUserReq param) {
|
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)));
|
.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) {
|
private List<SaasFeatureResourceService.SaasFeatureResourceCache> listAllSaasFeature(Map<Long, List<ProductPermissionCacheService.PermissionDTO>> workspacePermissions) {
|
||||||
|
|
||||||
Set<String> terminals = workspacePermissions.values().stream()
|
Set<String> terminals = workspacePermissions.values().stream()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user