feature(permission-query): 权限检查接口

This commit is contained in:
zhansihu 2023-10-19 10:16:06 +08:00
parent eb7d2e3005
commit 7009b40444
4 changed files with 36 additions and 5 deletions

View File

@ -77,7 +77,7 @@ public interface TyrSaasAuthApi {
* @param req * @param req
* @return * @return
*/ */
@PostMapping("/api/v2/auth/listPermissionFromFeature") @PostMapping("/api/v2/auth/listIdentityFromPermission")
ApiResult<List<QueryIdentityByPermissionResp>> listIdentityFromPermissionV2(@RequestBody ListPermissionFromFeatureReq req); ApiResult<List<QueryIdentityByPermissionResp>> listIdentityFromPermissionV2(@RequestBody ListPermissionFromFeatureReq req);

View File

@ -49,14 +49,12 @@ public class TyrSaasAuthController implements TyrSaasAuthApi {
@Override @Override
public ApiResult<Boolean> hasPermissionForIdentityV2(CheckIdentityPermissionReq req) { public ApiResult<Boolean> hasPermissionForIdentityV2(CheckIdentityPermissionReq req) {
//TODO:@Zhan return ApiResult.ok(tyrSaasAuthService.hasPermissionForIdentityV2(req));
return null;
} }
@Override @Override
public ApiResult<List<QueryIdentityByPermissionResp>> listIdentityFromPermissionV2(ListPermissionFromFeatureReq req) { public ApiResult<List<QueryIdentityByPermissionResp>> listIdentityFromPermissionV2(ListPermissionFromFeatureReq req) {
//TODO:@Zhan return ApiResult.ok(tyrSaasAuthService.listIdentityFromPermissionV2(req));
return null;
} }
} }

View File

@ -31,4 +31,7 @@ public interface TyrSaasAuthService {
*/ */
IdentityAuthRes findIdentityAuth(IdentityAuthReq identityAuthReq); IdentityAuthRes findIdentityAuth(IdentityAuthReq identityAuthReq);
boolean hasPermissionForIdentityV2(CheckIdentityPermissionReq req);
List<QueryIdentityByPermissionResp> listIdentityFromPermissionV2(ListPermissionFromFeatureReq req);
} }

View File

@ -52,6 +52,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
@ -499,6 +500,35 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService {
return result; return result;
} }
@Override
public boolean hasPermissionForIdentityV2(CheckIdentityPermissionReq req) {
if (CollectionUtil.isEmpty(req.getCodes())) {
return true;
}
IdentityAuthReq request = new IdentityAuthReq();
request.setIdentityId(req.getIdentityId());
request.setIdentityType(req.getIdentityType());
if (StrUtil.isNotBlank(req.getTerminal())) {
request.setTerminal(Collections.singletonList(req.getTerminal()));
}
IdentityAuthRes authRes = this.findIdentityAuth(request);
HashSet<String> codeSet = new HashSet<>(req.getCodes());
//比较code
return authRes.getPermissions().stream()
.anyMatch(e -> e.getPermissionPoint()
.stream()
.anyMatch(p -> codeSet.contains(p.getFeatureCode())));
}
@Override
public List<QueryIdentityByPermissionResp> listIdentityFromPermissionV2(ListPermissionFromFeatureReq req) {
//TODO:@Zhan
//超管 - 保持原逻辑
//非超管 权限code+terminal -> feature -> 权限集 -> 例外权限集作用范围过滤 --> 权限集角色-角色组匹配OU类型资质OU参建单位
//免授权型 - 没有意义
return null;
}
@Data @Data
public static class UserRoleInfoMap { public static class UserRoleInfoMap {