perf: 对接 SQLBot 列权限白名单机制

This commit is contained in:
fit2cloud-chenyw
2025-09-12 11:59:25 +08:00
committed by fit2cloud-chenyw
parent 836db3f8dc
commit 188665722f

View File

@@ -105,7 +105,8 @@ public class DatasetSQLBotManage {
}
return AesUtils.aesEncrypt(text, aesKey, iv);
}
TypeReference<List<Long>> listTypeReference = new TypeReference<List<Long>>() {
};
private Map<Long, List<DataSetColumnPermissionsDTO>> getColPermission(Long uid, List<Long> roleIds) {
ColumnPermissionsApi columnPermissionsApi = CommonBeanFactory.getBean(ColumnPermissionsApi.class);
Objects.requireNonNull(columnPermissionsApi);
@@ -122,7 +123,14 @@ public class DatasetSQLBotManage {
dataSetColumnPermissionsDTO.setAuthTargetType("role");
List<DataSetColumnPermissionsDTO> roleDataSetColumnPermissionsDTOS = columnPermissionsApi.list(dataSetColumnPermissionsDTO);
if (CollectionUtils.isNotEmpty(roleDataSetColumnPermissionsDTOS)) {
dataSetColumnPermissionsDTOS.addAll(roleDataSetColumnPermissionsDTOS);
for (DataSetColumnPermissionsDTO dto :roleDataSetColumnPermissionsDTOS) {
List<Long> userIdList = JsonUtil.parseList(dto.getWhiteListUser(), listTypeReference);
if (CollectionUtils.isEmpty(userIdList) || !userIdList.contains(uid)) {
// roleColumnPermissionsDTOS.add(columnPermissionsDTO);
dataSetColumnPermissionsDTOS.add(dto);
}
}
// dataSetColumnPermissionsDTOS.addAll(roleDataSetColumnPermissionsDTOS);
}
}
if (CollectionUtils.isEmpty(dataSetColumnPermissionsDTOS)) {