forked from github/dataease
feat: 行权限支持枚举
This commit is contained in:
parent
940147a687
commit
d312a36220
@ -22,7 +22,7 @@ public class RowPermissionsController {
|
||||
rowPermissionService.save(datasetRowPermissions);
|
||||
}
|
||||
|
||||
@ApiOperation("分页查询")
|
||||
@ApiOperation("查询")
|
||||
@PostMapping("/list")
|
||||
public List<DataSetRowPermissionsDTO> rowPermissions(@RequestBody XpackSysAuthDetailDTO request) {
|
||||
RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class);
|
||||
|
@ -470,19 +470,24 @@ public class DataSetTableService {
|
||||
public List<ChartFieldCustomFilterDTO> getCustomFilters(List<DatasetTableField> fields, DatasetTable datasetTable, Long user) {
|
||||
List<ChartFieldCustomFilterDTO> customFilter = new ArrayList<>();
|
||||
rowPermissions(datasetTable.getId(), user).forEach(datasetRowPermissions -> {
|
||||
List<ChartCustomFilterItemDTO> lists = JSONObject.parseArray(datasetRowPermissions.getFilter(), ChartCustomFilterItemDTO.class);
|
||||
ChartFieldCustomFilterDTO dto = new ChartFieldCustomFilterDTO();
|
||||
DatasetTableField field = getFieldById(fields, datasetRowPermissions.getDatasetFieldId());
|
||||
lists.forEach(chartCustomFilterDTO -> {
|
||||
chartCustomFilterDTO.setFieldId(field.getId());
|
||||
});
|
||||
if (field != null) {
|
||||
dto.setFilter(lists);
|
||||
dto.setField(field);
|
||||
dto.setId(field.getId());
|
||||
dto.setLogic(datasetRowPermissions.getLogic());
|
||||
dto.setField(field);
|
||||
dto.setId(field.getId());
|
||||
dto.setFilterType(datasetRowPermissions.getFilterType());
|
||||
if(datasetRowPermissions.getFilterType().equalsIgnoreCase("logic")){
|
||||
List<ChartCustomFilterItemDTO> lists = JSONObject.parseArray(datasetRowPermissions.getFilter(), ChartCustomFilterItemDTO.class);
|
||||
lists.forEach(chartCustomFilterDTO -> { chartCustomFilterDTO.setFieldId(field.getId()); });
|
||||
if (field != null) {
|
||||
dto.setFilter(lists);
|
||||
dto.setLogic(datasetRowPermissions.getLogic());
|
||||
customFilter.add(dto);
|
||||
}
|
||||
}else {
|
||||
dto.setEnumCheckField(Arrays.asList(datasetRowPermissions.getEnumCheckField().split(",").clone()));
|
||||
customFilter.add(dto);
|
||||
}
|
||||
|
||||
});
|
||||
return customFilter;
|
||||
}
|
||||
|
@ -4,8 +4,10 @@ CREATE TABLE `dataset_row_permissions` (
|
||||
`auth_target_id` bigint(20) DEFAULT NULL COMMENT '权限对象ID',
|
||||
`dataset_id` varchar(64) DEFAULT NULL COMMENT '数据集ID',
|
||||
`dataset_field_id` varchar(64) DEFAULT NULL COMMENT '数据集字段ID',
|
||||
`filter_type` varchar(64) DEFAULT NULL COMMENT '过滤类型:逻辑、枚举',
|
||||
`logic` varchar(64) DEFAULT NULL COMMENT '与/或',
|
||||
`filter` longtext DEFAULT NULL COMMENT '数值',
|
||||
`enum_check_field` longtext DEFAULT NULL COMMENT '枚举值',
|
||||
`update_time` bigint(13) NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;
|
||||
|
@ -60,8 +60,6 @@
|
||||
</javaClientGenerator>
|
||||
|
||||
<!--要生成的数据库表 -->
|
||||
<table tableName="panel_link_mapping">
|
||||
</table>
|
||||
<table tableName="panel_group"/>
|
||||
<table tableName="dataset_row_permissions"/>
|
||||
</context>
|
||||
</generatorConfiguration>
|
||||
|
Loading…
Reference in New Issue
Block a user