Merge pull request #11330 from dataease/pr@dev@fixExportdata

fix: 【仪表板】筛选组件未受数据集权限影响
This commit is contained in:
taojinlong 2024-08-01 18:38:18 +08:00 committed by GitHub
commit f875443ec2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,10 +1,14 @@
package io.dataease.service.dataset.impl.direct;
import com.google.gson.Gson;
import io.dataease.auth.entity.SysUserEntity;
import io.dataease.auth.service.AuthUserService;
import io.dataease.commons.model.BaseTreeNode;
import io.dataease.commons.utils.AuthUtils;
import io.dataease.commons.utils.BeanUtils;
import io.dataease.commons.utils.LogUtil;
import io.dataease.commons.utils.TreeUtils;
import io.dataease.dto.dataset.DataSetTableDTO;
import io.dataease.dto.dataset.DataSetTableUnionDTO;
import io.dataease.plugins.common.dto.dataset.DataTableInfoDTO;
import io.dataease.dto.dataset.DeSortDTO;
@ -53,6 +57,8 @@ public class DirectFieldService implements DataSetFieldService {
private EngineService engineService;
@Resource
private PermissionsTreeService permissionsTreeService;
@Resource
private AuthUserService authUserService;
@Override
public List<Object> fieldValues(String fieldId, Long userId, Boolean userPermissions, Boolean rowAndColumnMgm) throws Exception {
@ -107,7 +113,13 @@ public class DirectFieldService implements DataSetFieldService {
DatasetTable datasetTable = dataSetTableService.get(field.getTableId());
if (ObjectUtils.isEmpty(datasetTable) || StringUtils.isEmpty(datasetTable.getName())) return null;
SysUserEntity userEntity = userId != null ? authUserService.getUserById(userId) : AuthUtils.getUser();
if (userEntity != null && !userEntity.getIsAdmin()) {
DataSetTableDTO withPermission = dataSetTableService.getWithPermission(datasetTable.getId(), userEntity.getUserId());
if (ObjectUtils.isEmpty(withPermission.getPrivileges()) || !withPermission.getPrivileges().contains("use")) {
DataEaseException.throwException(Translator.get("i18n_dataset_no_permission") + String.format(":table name [%s]", withPermission.getName()));
}
}
DatasetTableField datasetTableField = DatasetTableField.builder().tableId(field.getTableId()).checked(Boolean.TRUE).build();
List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableField);