feat(2046-permission): 去重ou workspace对

This commit is contained in:
zhansihu 2024-01-27 11:05:43 +08:00
parent fb2ae4928e
commit 120d9e0952
2 changed files with 14 additions and 0 deletions

View File

@ -4,6 +4,7 @@ import cn.axzo.framework.auth.domain.TerminalInfo;
import cn.axzo.tyr.client.common.enums.WorkspaceJoinType;
import cn.axzo.tyr.client.model.enums.FeatureType;
import cn.axzo.tyr.client.model.enums.IdentityType;
import cn.hutool.core.collection.CollectionUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -17,6 +18,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import static cn.axzo.tyr.client.common.enums.WorkspaceJoinType.ENT_GROUP;
import static cn.axzo.tyr.client.common.enums.WorkspaceJoinType.ENT_TEAM;
@ -71,6 +73,16 @@ public class IdentityAuthReq {
@Builder.Default
private boolean useCache = true;
public void distinctOUWorkspacePair() {
if (CollectionUtil.isEmpty(this.workspaceOusPairs)) {
return;
}
Set<String> distinctSet = new HashSet<>();
this.workspaceOusPairs = this.workspaceOusPairs.stream()
.filter(p -> distinctSet.add(p.getOuId() + "-" + p.getWorkspaceId()))
.collect(Collectors.toList());
}
@Data
@Builder

View File

@ -750,6 +750,8 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService {
public IdentityAuthRes findIdentityAuthMix(IdentityAuthReq req) {
List<IdentityAuthRes.WorkspacePermission> permissions = null;
//不走缓存的情况关闭缓存开关 - 缓存临时禁用 - 请求指明不走缓存 - 角色预览操作
//请求参数去重: ou-workspace
req.distinctOUWorkspacePair();
boolean notUseCache = !req.isUseCache()
|| CollectionUtil.isNotEmpty(req.getSpecifyRoleIds())
|| permissionCacheService.cacheDisable(