(improvement)(semantic) add admin auth check in metric market

This commit is contained in:
jolunoluo
2023-09-20 16:08:53 +08:00
parent b824cd8ce7
commit 63eff5c62a
9 changed files with 38 additions and 14 deletions

View File

@@ -9,6 +9,7 @@ import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.common.pojo.DataAddEvent;
import com.tencent.supersonic.common.pojo.DataDeleteEvent;
import com.tencent.supersonic.common.pojo.DataUpdateEvent;
import com.tencent.supersonic.common.pojo.enums.AuthType;
import com.tencent.supersonic.common.pojo.enums.DictWordType;
import com.tencent.supersonic.common.util.ChatGptHelper;
import com.tencent.supersonic.semantic.api.model.pojo.Measure;
@@ -124,7 +125,7 @@ public class MetricServiceImpl implements MetricService {
}
@Override
public PageInfo<MetricResp> queryMetric(PageMetricReq pageMetricReq) {
public PageInfo<MetricResp> queryMetric(PageMetricReq pageMetricReq, User user) {
MetricFilter metricFilter = new MetricFilter();
BeanUtils.copyProperties(pageMetricReq, metricFilter);
Set<DomainResp> domainResps = domainService.getDomainChildren(pageMetricReq.getDomainIds());
@@ -138,7 +139,9 @@ public class MetricServiceImpl implements MetricService {
.doSelectPageInfo(() -> queryMetric(metricFilter));
PageInfo<MetricResp> pageInfo = new PageInfo<>();
BeanUtils.copyProperties(metricDOPageInfo, pageInfo);
pageInfo.setList(convertList(metricDOPageInfo.getList()));
List<MetricResp> metricResps = convertList(metricDOPageInfo.getList());
fillAdminRes(metricResps, user);
pageInfo.setList(metricResps);
return pageInfo;
}
@@ -146,6 +149,21 @@ public class MetricServiceImpl implements MetricService {
return metricRepository.getMetric(metricFilter);
}
private void fillAdminRes(List<MetricResp> metricResps, User user) {
List<ModelResp> modelResps = modelService.getModelListWithAuth(user, null, AuthType.ADMIN);
if (CollectionUtils.isEmpty(modelResps)) {
return;
}
Set<Long> modelIdSet = modelResps.stream().map(ModelResp::getId).collect(Collectors.toSet());
for (MetricResp metricResp : metricResps) {
if (modelIdSet.contains(metricResp.getModelId())) {
metricResp.setHasAdminRes(true);
}
}
}
@Override
public MetricResp getMetric(Long modelId, String bizName) {
List<MetricResp> metricDescs = getMetricByModelId(modelId);

View File

@@ -23,7 +23,7 @@ public interface MetricService {
void createMetricBatch(List<MetricReq> metricReqs, User user) throws Exception;
PageInfo<MetricResp> queryMetric(PageMetricReq pageMetricReq);
PageInfo<MetricResp> queryMetric(PageMetricReq pageMetricReq, User user);
MetricResp getMetric(Long modelId, String bizName);

View File

@@ -69,8 +69,11 @@ public class MetricController {
@PostMapping("/queryMetric")
public PageInfo<MetricResp> queryMetric(@RequestBody PageMetricReq pageMetrricReq) {
return metricService.queryMetric(pageMetrricReq);
public PageInfo<MetricResp> queryMetric(@RequestBody PageMetricReq pageMetricReq,
HttpServletRequest request,
HttpServletResponse response) {
User user = UserHolder.findUser(request, response);
return metricService.queryMetric(pageMetricReq, user);
}
@GetMapping("getMetric/{modelId}/{bizName}")