diff --git a/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java b/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java index 1f962c6b72..cdfc29206b 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java +++ b/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java @@ -9,6 +9,7 @@ import io.dataease.chart.constant.ChartConstants; import io.dataease.chart.manage.ChartDataManage; import io.dataease.constant.AuthConstant; import io.dataease.constant.CommonConstants; +import io.dataease.dataset.manage.PermissionManage; import io.dataease.dataset.server.DatasetFieldServer; import io.dataease.engine.constant.DeTypeConstants; import io.dataease.exception.DEException; @@ -38,7 +39,9 @@ import org.springframework.web.context.request.ServletRequestAttributes; import java.io.OutputStream; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.stream.Collectors; /** * @Author Junjun @@ -55,7 +58,8 @@ public class ChartDataServer implements ChartDataApi { private VisualizationTemplateExtendDataManage extendDataManage; @Value("${export.views.limit:500000}") private Integer limit; - + @Resource + private PermissionManage permissionManage; @Resource private DatasetFieldServer datasetFieldServer; @@ -84,15 +88,17 @@ public class ChartDataServer implements ChartDataApi { if ("dataset".equals(request.getDownloadType())) { viewDTO.setType("table-info"); List sourceFields = datasetFieldServer.listByDatasetGroup(viewDTO.getTableId()); + List fileNames = permissionManage.filterColumnPermissions(sourceFields, new HashMap<>(), viewDTO.getTableId(), null).stream().map(DatasetTableFieldDTO::getDataeaseName).collect(Collectors.toList()); + sourceFields = sourceFields.stream().filter(datasetTableFieldDTO -> fileNames.contains(datasetTableFieldDTO.getDataeaseName())).collect(Collectors.toList()); dsHeader = sourceFields.stream() .map(DatasetTableFieldDTO::getName) .toArray(String[]::new); dsTypes = sourceFields.stream() .map(DatasetTableFieldDTO::getDeType) .toArray(Integer[]::new); - TypeReference> listTypeReference = new TypeReference>(){ + TypeReference> listTypeReference = new TypeReference>() { }; - viewDTO.setXAxis(JsonUtil.parseList(JsonUtil.toJSONString(sourceFields).toString(),listTypeReference)); + viewDTO.setXAxis(JsonUtil.parseList(JsonUtil.toJSONString(sourceFields).toString(), listTypeReference)); } if (ChartConstants.VIEW_RESULT_MODE.CUSTOM.equals(viewDTO.getResultMode())) { Integer limitCount = viewDTO.getResultCount();