feat: 行权限支持枚举

This commit is contained in:
taojinlong 2021-12-21 17:26:26 +08:00
parent 940147a687
commit d312a36220
4 changed files with 18 additions and 13 deletions

View File

@ -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);

View File

@ -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;
}

View File

@ -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;

View File

@ -60,8 +60,6 @@
</javaClientGenerator>
<!--要生成的数据库表 -->
<table tableName="panel_link_mapping">
</table>
<table tableName="panel_group"/>
<table tableName="dataset_row_permissions"/>
</context>
</generatorConfiguration>