feat(REQ-2300):获取提交数据的workspaceId
This commit is contained in:
parent
52f5e9b546
commit
bcef59ffd2
@ -137,7 +137,9 @@ public class DataPermissionInterceptor {
|
||||
return;
|
||||
}
|
||||
|
||||
Optional<MatchDataObjectResp> matchDataObjectOptional = this.matchRule(dataPermission, httpRequest);
|
||||
Long responseBodyWorkspaceId = getRequestBodyWorkspaceId(httpRequest, dataPermission);
|
||||
|
||||
Optional<MatchDataObjectResp> matchDataObjectOptional = this.matchRule(dataPermission, responseBodyWorkspaceId);
|
||||
if (!matchDataObjectOptional.isPresent()) {
|
||||
log.warn("no match data rule, bizCode:{}, personId:{}, ouId:{}, workspaceId:{}",
|
||||
dataPermission.bizCode(),
|
||||
@ -149,7 +151,7 @@ public class DataPermissionInterceptor {
|
||||
|
||||
DataPermissionContextHolder.DataPermissionContext dataPermissionContext = DataPermissionContextHolder.DataPermissionContext.builder()
|
||||
.dataPermission(dataPermission)
|
||||
.workspaceId(contextInfo.getWorkspaceId())
|
||||
.workspaceId(Objects.nonNull(responseBodyWorkspaceId) ? responseBodyWorkspaceId : contextInfo.getWorkspaceId())
|
||||
.ouId(contextInfo.getOuId())
|
||||
.personId(contextInfo.getUserInfo().getPersonId())
|
||||
.resultKey(matchDataObjectOptional.get().getResultKey())
|
||||
@ -158,22 +160,14 @@ public class DataPermissionInterceptor {
|
||||
DataPermissionContextHolder.setContext(dataPermissionContext);
|
||||
}
|
||||
|
||||
private Optional<MatchDataObjectResp> matchRule(DataPermission dataPermission, HttpServletRequest httpRequest) {
|
||||
private Optional<MatchDataObjectResp> matchRule(DataPermission dataPermission, Long responseBodyWorkspaceId) {
|
||||
|
||||
ContextInfo contextInfo = ContextInfoHolder.get();
|
||||
Long workspaceId = null;
|
||||
String requestBodyWorkspaceId = dataPermission.requestBodyWorkspaceId();
|
||||
if (StringUtils.isNotBlank(requestBodyWorkspaceId)) {
|
||||
workspaceId = getRequestBodyWorkspaceId(httpRequest, requestBodyWorkspaceId);
|
||||
}
|
||||
if (Objects.isNull(workspaceId)) {
|
||||
workspaceId = contextInfo.getWorkspaceId();
|
||||
}
|
||||
|
||||
MatchDataObjectReq matchDataObjectReq = MatchDataObjectReq.builder()
|
||||
.dataObjectCode(dataPermission.bizCode())
|
||||
.ouId(contextInfo.getOuId())
|
||||
.workspaceId(workspaceId)
|
||||
.workspaceId(Objects.nonNull(responseBodyWorkspaceId) ? responseBodyWorkspaceId : contextInfo.getWorkspaceId())
|
||||
.personId(contextInfo.getUserInfo().getPersonId())
|
||||
.build();
|
||||
|
||||
@ -202,12 +196,16 @@ public class DataPermissionInterceptor {
|
||||
return dataPermissionContext;
|
||||
}
|
||||
|
||||
private Long getRequestBodyWorkspaceId(HttpServletRequest httpRequest, String requestBodyWorkspaceIdKey) {
|
||||
private Long getRequestBodyWorkspaceId(HttpServletRequest httpRequest, DataPermission dataPermission) {
|
||||
try {
|
||||
String requestBodyWorkspaceId = dataPermission.requestBodyWorkspaceId();
|
||||
if (StringUtils.isBlank(requestBodyWorkspaceId)) {
|
||||
return null;
|
||||
}
|
||||
String requestBody = httpRequest.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
JsonNode rootNode = mapper.readTree(requestBody);
|
||||
String workspaceId = rootNode.path(requestBodyWorkspaceIdKey).asText();
|
||||
String workspaceId = rootNode.path(requestBodyWorkspaceId).asText();
|
||||
if (StringUtils.isNotBlank(workspaceId)) {
|
||||
return Long.valueOf(workspaceId);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user