forked from github/dataease
fix: 每个字段,同一类型的行權限,限制只有一条记录
This commit is contained in:
parent
8bb5d5b427
commit
d5f8ce4abd
@ -4,6 +4,7 @@ import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import io.dataease.commons.utils.PageUtils;
|
||||
import io.dataease.commons.utils.Pager;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.plugins.common.entity.XpackConditionEntity;
|
||||
import io.dataease.plugins.common.entity.XpackGridRequest;
|
||||
import io.dataease.plugins.config.SpringContextUtil;
|
||||
@ -11,6 +12,7 @@ import io.dataease.plugins.xpack.auth.dto.request.DataSetRowPermissionsDTO;
|
||||
import io.dataease.plugins.xpack.auth.dto.request.DatasetRowPermissions;
|
||||
import io.dataease.plugins.xpack.auth.service.RowPermissionService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -24,6 +26,13 @@ public class RowPermissionsController {
|
||||
@PostMapping("save")
|
||||
public void save(@RequestBody DatasetRowPermissions datasetRowPermissions) throws Exception {
|
||||
RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class);
|
||||
DataSetRowPermissionsDTO request = new DataSetRowPermissionsDTO();
|
||||
request.setAuthTargetType(datasetRowPermissions.getAuthTargetType());
|
||||
request.setAuthTargetId(datasetRowPermissions.getAuthTargetId());
|
||||
request.setDatasetFieldId(datasetRowPermissions.getDatasetFieldId());
|
||||
if(!CollectionUtils.isEmpty(rowPermissionService.searchRowPermissions(request))){
|
||||
throw new Exception(Translator.get("i18n_rp_exist"));
|
||||
}
|
||||
rowPermissionService.save(datasetRowPermissions);
|
||||
}
|
||||
|
||||
|
@ -504,6 +504,9 @@ public class DataSetTableService {
|
||||
List<ChartFieldCustomFilterDTO> customFilter = new ArrayList<>();
|
||||
for (DatasetRowPermissions datasetRowPermissions : rowPermissions(datasetTable.getId(), user)) {
|
||||
ChartFieldCustomFilterDTO dto = new ChartFieldCustomFilterDTO();
|
||||
if(StringUtils.isEmpty(datasetRowPermissions.getDatasetFieldId())){
|
||||
continue;
|
||||
}
|
||||
DatasetTableField field = getFieldById(fields, datasetRowPermissions.getDatasetFieldId());
|
||||
if (field == null) {
|
||||
continue;
|
||||
@ -512,6 +515,9 @@ public class DataSetTableService {
|
||||
dto.setId(field.getId());
|
||||
dto.setFilterType(datasetRowPermissions.getFilterType());
|
||||
if (datasetRowPermissions.getFilterType().equalsIgnoreCase("logic")) {
|
||||
if(StringUtils.isEmpty(datasetRowPermissions.getFilter())){
|
||||
continue;
|
||||
}
|
||||
List<ChartCustomFilterItemDTO> lists = JSONObject.parseArray(datasetRowPermissions.getFilter(), ChartCustomFilterItemDTO.class);
|
||||
lists.forEach(chartCustomFilterDTO -> {
|
||||
chartCustomFilterDTO.setFieldId(field.getId());
|
||||
@ -520,6 +526,9 @@ public class DataSetTableService {
|
||||
dto.setLogic(datasetRowPermissions.getLogic());
|
||||
customFilter.add(dto);
|
||||
} else {
|
||||
if(StringUtils.isEmpty(datasetRowPermissions.getEnumCheckField())){
|
||||
continue;
|
||||
}
|
||||
dto.setEnumCheckField(Arrays.asList(datasetRowPermissions.getEnumCheckField().split(",").clone()));
|
||||
customFilter.add(dto);
|
||||
}
|
||||
|
@ -296,4 +296,5 @@ i18n_sql_error=SQL Error:
|
||||
i18n_invalid_ds=Invalid Datasource
|
||||
任务管理=Task Manager
|
||||
数据同步=Data Sync
|
||||
定时报告=Regular report
|
||||
定时报告=Regular report
|
||||
i18n_rp_exist=Row permission of the same type already exists
|
@ -295,4 +295,5 @@ i18n_sql_error=SQL 错误:
|
||||
i18n_invalid_ds=无效数据源
|
||||
任务管理=任务管理
|
||||
数据同步=数据同步
|
||||
定时报告=定时报告
|
||||
定时报告=定时报告
|
||||
i18n_rp_exist=已有同类型的行权限存在
|
@ -298,4 +298,5 @@ i18n_sql_error=SQL 錯誤:
|
||||
i18n_invalid_ds=無效數據源
|
||||
任务管理=任務管理
|
||||
数据同步=數據同步
|
||||
定时报告=定時報告
|
||||
定时报告=定時報告
|
||||
i18n_rp_exist=已有同類型餓行權限存在
|
Loading…
Reference in New Issue
Block a user