feat: 数据集脱敏规则

This commit is contained in:
taojinlong 2022-11-24 19:06:38 +08:00
parent 0764e477bf
commit 59a8dc4544
10 changed files with 186 additions and 77 deletions

View File

@ -4,7 +4,4 @@ public class ColumnPermissionConstants {
public final static String Prohibit = "Prohibit"; public final static String Prohibit = "Prohibit";
public final static String Desensitization = "Desensitization"; public final static String Desensitization = "Desensitization";
public final static String Desensitization_desc = "******";
} }

View File

@ -19,6 +19,7 @@ import io.dataease.plugins.common.base.domain.DatasetTableField;
import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.domain.Datasource;
import io.dataease.plugins.datasource.entity.Dateformat; import io.dataease.plugins.datasource.entity.Dateformat;
import io.dataease.plugins.datasource.query.QueryProvider; import io.dataease.plugins.datasource.query.QueryProvider;
import io.dataease.plugins.xpack.auth.dto.request.ColumnPermissionItem;
import io.dataease.provider.ProviderFactory; import io.dataease.provider.ProviderFactory;
import io.dataease.service.dataset.DataSetFieldService; import io.dataease.service.dataset.DataSetFieldService;
import io.dataease.service.dataset.DataSetTableFieldsService; import io.dataease.service.dataset.DataSetTableFieldsService;
@ -70,7 +71,7 @@ public class DataSetTableFieldController {
DatasetTableField datasetTableField = DatasetTableField.builder().build(); DatasetTableField datasetTableField = DatasetTableField.builder().build();
datasetTableField.setTableId(tableId); datasetTableField.setTableId(tableId);
List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableField); List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableField);
fields = permissionService.filterColumnPermissions(fields, new ArrayList<>(), tableId, null); fields = permissionService.filterColumnPermissions(fields, new HashMap<>(), tableId, null);
return fields; return fields;
} }
@ -81,9 +82,9 @@ public class DataSetTableFieldController {
DatasetTableField datasetTableField = DatasetTableField.builder().build(); DatasetTableField datasetTableField = DatasetTableField.builder().build();
datasetTableField.setTableId(tableId); datasetTableField.setTableId(tableId);
List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableField); List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableField);
List<String> desensitizationList = new ArrayList<>(); Map<String, ColumnPermissionItem> desensitizationList = new HashMap<>();
fields = permissionService.filterColumnPermissions(fields, desensitizationList, tableId, null); fields = permissionService.filterColumnPermissions(fields, desensitizationList, tableId, null);
fields = fields.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName())).collect(Collectors.toList()); fields = fields.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName())).collect(Collectors.toList());
return fields; return fields;
} }

View File

@ -47,6 +47,7 @@ import io.dataease.plugins.datasource.provider.Provider;
import io.dataease.plugins.datasource.query.QueryProvider; import io.dataease.plugins.datasource.query.QueryProvider;
import io.dataease.plugins.view.entity.*; import io.dataease.plugins.view.entity.*;
import io.dataease.plugins.view.service.ViewPluginService; import io.dataease.plugins.view.service.ViewPluginService;
import io.dataease.plugins.xpack.auth.dto.request.ColumnPermissionItem;
import io.dataease.provider.ProviderFactory; import io.dataease.provider.ProviderFactory;
import io.dataease.service.chart.util.ChartDataBuild; import io.dataease.service.chart.util.ChartDataBuild;
import io.dataease.service.dataset.*; import io.dataease.service.dataset.*;
@ -355,15 +356,15 @@ public class ChartViewService {
checkPermission("use", table, requestList.getUser()); checkPermission("use", table, requestList.getUser());
//列权限 //列权限
List<String> desensitizationList = new ArrayList<>(); Map<String, ColumnPermissionItem> desensitizationList = new HashMap<>();
List<DatasetTableField> columnPermissionFields = permissionService.filterColumnPermissions(fields, desensitizationList, table.getId(), requestList.getUser()); List<DatasetTableField> columnPermissionFields = permissionService.filterColumnPermissions(fields, desensitizationList, table.getId(), requestList.getUser());
//将没有权限的列删掉 //将没有权限的列删掉
List<String> dataeaseNames = columnPermissionFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.toList()); List<String> dataeaseNames = columnPermissionFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.toList());
dataeaseNames.add("*"); dataeaseNames.add("*");
fieldCustomFilter = fieldCustomFilter.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); fieldCustomFilter = fieldCustomFilter.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
extStack = extStack.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); extStack = extStack.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
extBubble = extBubble.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); extBubble = extBubble.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
drill = drill.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); drill = drill.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
//行权限 //行权限
@ -379,7 +380,7 @@ public class ChartViewService {
switch (view.getType()) { switch (view.getType()) {
case "label": case "label":
xAxis = xAxis.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); xAxis = xAxis.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
yAxis = new ArrayList<>(); yAxis = new ArrayList<>();
if (CollectionUtils.isEmpty(xAxis)) { if (CollectionUtils.isEmpty(xAxis)) {
return new ArrayList<String[]>(); return new ArrayList<String[]>();
@ -389,7 +390,7 @@ public class ChartViewService {
case "gauge": case "gauge":
case "liquid": case "liquid":
xAxis = new ArrayList<>(); xAxis = new ArrayList<>();
yAxis = yAxis.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); yAxis = yAxis.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(yAxis)) { if (CollectionUtils.isEmpty(yAxis)) {
return new ArrayList<String[]>(); return new ArrayList<String[]>();
} }
@ -406,8 +407,8 @@ public class ChartViewService {
yAxis = yAxis.stream().filter(item -> dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); yAxis = yAxis.stream().filter(item -> dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
break; break;
default: default:
xAxis = xAxis.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); xAxis = xAxis.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
yAxis = yAxis.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList()); yAxis = yAxis.stream().filter(item -> !desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
} }
List<ChartExtFilterRequest> extFilterList = new ArrayList<>(); List<ChartExtFilterRequest> extFilterList = new ArrayList<>();
@ -609,16 +610,16 @@ public class ChartViewService {
DataSetTableDTO table = dataSetTableService.getWithPermission(view.getTableId(), chartExtRequest.getUser()); DataSetTableDTO table = dataSetTableService.getWithPermission(view.getTableId(), chartExtRequest.getUser());
checkPermission("use", table, chartExtRequest.getUser()); checkPermission("use", table, chartExtRequest.getUser());
List<String> desensitizationList = new ArrayList<>(); Map<String, ColumnPermissionItem> desensitizationList = new HashMap<>();
//列权限 //列权限
List<DatasetTableField> columnPermissionFields = permissionService.filterColumnPermissions(fields, desensitizationList, table.getId(), chartExtRequest.getUser()); List<DatasetTableField> columnPermissionFields = permissionService.filterColumnPermissions(fields, desensitizationList, table.getId(), chartExtRequest.getUser());
//将没有权限的列删掉 //将没有权限的列删掉
List<String> dataeaseNames = columnPermissionFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.toList()); List<String> dataeaseNames = columnPermissionFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.toList());
dataeaseNames.add("*"); dataeaseNames.add("*");
fieldCustomFilter = fieldCustomFilter.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); fieldCustomFilter = fieldCustomFilter.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
extStack = extStack.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); extStack = extStack.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
extBubble = extBubble.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); extBubble = extBubble.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
drill = drill.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); drill = drill.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
//行权限 //行权限
List<DataSetRowPermissionsTreeDTO> rowPermissionsTree = permissionsTreeService.getRowPermissionsTree(fields, table, chartExtRequest.getUser()); List<DataSetRowPermissionsTreeDTO> rowPermissionsTree = permissionsTreeService.getRowPermissionsTree(fields, table, chartExtRequest.getUser());
@ -649,7 +650,7 @@ public class ChartViewService {
switch (view.getType()) { switch (view.getType()) {
case "label": case "label":
xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
yAxis = new ArrayList<>(); yAxis = new ArrayList<>();
if (CollectionUtils.isEmpty(xAxis)) { if (CollectionUtils.isEmpty(xAxis)) {
return emptyChartViewDTO(view); return emptyChartViewDTO(view);
@ -659,7 +660,7 @@ public class ChartViewService {
case "gauge": case "gauge":
case "liquid": case "liquid":
xAxis = new ArrayList<>(); xAxis = new ArrayList<>();
yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
if (CollectionUtils.isEmpty(yAxis)) { if (CollectionUtils.isEmpty(yAxis)) {
return emptyChartViewDTO(view); return emptyChartViewDTO(view);
} }
@ -677,14 +678,14 @@ public class ChartViewService {
break; break;
case "bar-group": case "bar-group":
case "bar-group-stack": case "bar-group-stack":
xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
xAxisBase = xAxisBase.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); xAxisBase = xAxisBase.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
xAxisExt = xAxisExt.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); xAxisExt = xAxisExt.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
break; break;
default: default:
xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList());
} }
// 过滤来自仪表板的条件 // 过滤来自仪表板的条件
@ -731,7 +732,7 @@ public class ChartViewService {
if (datasetTableField == null) { if (datasetTableField == null) {
continue; continue;
} }
if (!desensitizationList.contains(datasetTableField.getDataeaseName()) && dataeaseNames.contains(datasetTableField.getDataeaseName())) { if (!desensitizationList.keySet().contains(datasetTableField.getDataeaseName()) && dataeaseNames.contains(datasetTableField.getDataeaseName())) {
if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) { if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) {
if (CollectionUtils.isNotEmpty(filterRequest.getViewIds())) { if (CollectionUtils.isNotEmpty(filterRequest.getViewIds())) {
if (filterRequest.getViewIds().contains(view.getId())) { if (filterRequest.getViewIds().contains(view.getId())) {
@ -756,7 +757,7 @@ public class ChartViewService {
if (datasetTableField == null) { if (datasetTableField == null) {
continue; continue;
} }
if (!desensitizationList.contains(datasetTableField.getDataeaseName()) && dataeaseNames.contains(datasetTableField.getDataeaseName())) { if (!desensitizationList.keySet().contains(datasetTableField.getDataeaseName()) && dataeaseNames.contains(datasetTableField.getDataeaseName())) {
filterRequest.setDatasetTableField(datasetTableField); filterRequest.setDatasetTableField(datasetTableField);
if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) { if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) {
if (CollectionUtils.isNotEmpty(filterRequest.getViewIds())) { if (CollectionUtils.isNotEmpty(filterRequest.getViewIds())) {
@ -789,7 +790,7 @@ public class ChartViewService {
if (ObjectUtils.isNotEmpty(filters)) { if (ObjectUtils.isNotEmpty(filters)) {
for (ChartExtFilterRequest request : filters) { for (ChartExtFilterRequest request : filters) {
DatasetTableField datasetTableField = dataSetTableFieldsService.get(request.getFieldId()); DatasetTableField datasetTableField = dataSetTableFieldsService.get(request.getFieldId());
if (!desensitizationList.contains(datasetTableField.getDataeaseName()) && dataeaseNames.contains(datasetTableField.getDataeaseName())) { if (!desensitizationList.keySet().contains(datasetTableField.getDataeaseName()) && dataeaseNames.contains(datasetTableField.getDataeaseName())) {
request.setDatasetTableField(datasetTableField); request.setDatasetTableField(datasetTableField);
if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) { if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) {
if (CollectionUtils.isNotEmpty(request.getViewIds())) { if (CollectionUtils.isNotEmpty(request.getViewIds())) {

View File

@ -1,9 +1,9 @@
package io.dataease.service.chart.util; package io.dataease.service.chart.util;
import io.dataease.plugins.common.base.domain.ChartViewWithBLOBs; import io.dataease.plugins.common.base.domain.ChartViewWithBLOBs;
import io.dataease.commons.constants.ColumnPermissionConstants;
import io.dataease.dto.chart.*; import io.dataease.dto.chart.*;
import io.dataease.plugins.common.dto.chart.ChartViewFieldDTO; import io.dataease.plugins.common.dto.chart.ChartViewFieldDTO;
import io.dataease.plugins.xpack.auth.dto.request.ColumnPermissionItem;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -162,7 +162,7 @@ public class ChartDataBuild {
dataList.add(axisChartDataDTO); dataList.add(axisChartDataDTO);
if ("line".equals(view.getType())) { if ("line".equals(view.getType())) {
if (CollectionUtils.isEmpty(xAxisExt)){ if (CollectionUtils.isEmpty(xAxisExt)) {
axisChartDataDTO.setCategory(yAxis.get(j).getName()); axisChartDataDTO.setCategory(yAxis.get(j).getName());
} else { } else {
// 多指标只取第一个 // 多指标只取第一个
@ -938,7 +938,7 @@ public class ChartDataBuild {
} }
// 表格 // 表格
public static Map<String, Object> transTableNormal(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extStack, List<String> desensitizationList) { public static Map<String, Object> transTableNormal(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extStack, Map<String, ColumnPermissionItem> desensitizationList) {
List<ChartViewFieldDTO> fields = new ArrayList<>(); List<ChartViewFieldDTO> fields = new ArrayList<>();
if (ObjectUtils.isNotEmpty(xAxis)) { if (ObjectUtils.isNotEmpty(xAxis)) {
fields.addAll(xAxis); fields.addAll(xAxis);
@ -953,7 +953,7 @@ public class ChartDataBuild {
} }
// 表格 // 表格
public static Map<String, Object> transTableNormal(Map<String, List<ChartViewFieldDTO>> fieldMap, ChartViewWithBLOBs view, List<String[]> data, List<String> desensitizationList) { public static Map<String, Object> transTableNormal(Map<String, List<ChartViewFieldDTO>> fieldMap, ChartViewWithBLOBs view, List<String[]> data, Map<String, ColumnPermissionItem> desensitizationList) {
List<ChartViewFieldDTO> fields = new ArrayList<>(); List<ChartViewFieldDTO> fields = new ArrayList<>();
List<ChartViewFieldDTO> yfields = new ArrayList<>(); List<ChartViewFieldDTO> yfields = new ArrayList<>();
@ -983,14 +983,74 @@ public class ChartDataBuild {
return transTableNormal(fields, view, data, desensitizationList); return transTableNormal(fields, view, data, desensitizationList);
} }
private static Map<String, Object> transTableNormal(List<ChartViewFieldDTO> fields, ChartViewWithBLOBs view, List<String[]> data, List<String> desensitizationList) { public static String desensitizationValue(ColumnPermissionItem columnPermissionItem, String originStr) {
String desensitizationStr = "";
System.out.println(columnPermissionItem.getDesensitizationRule().getBuiltInRule().toString());
if (!columnPermissionItem.getDesensitizationRule().getBuiltInRule().toString().equalsIgnoreCase("custom")) {
switch (columnPermissionItem.getDesensitizationRule().getBuiltInRule()) {
case CompleteDesensitization:
desensitizationStr = ColumnPermissionItem.CompleteDesensitization;
break;
case KeepMiddleThreeCharacters:
if (StringUtils.isEmpty(originStr) || originStr.length() < 4) {
desensitizationStr = ColumnPermissionItem.KeepMiddleThreeCharacters;
} else {
desensitizationStr = "***" + StringUtils.substring(originStr, originStr.length() / 2 - 1, originStr.length() / 2 + 2) + "***";
}
break;
case KeepFirstAndLastThreeCharacters:
if (StringUtils.isEmpty(originStr) || originStr.length() < 7) {
desensitizationStr = ColumnPermissionItem.KeepFirstAndLastThreeCharacters;
} else {
desensitizationStr = StringUtils.substring(originStr, 0, 3) + "***" + StringUtils.substring(originStr, originStr.length() - 3, originStr.length());
}
break;
default:
break;
}
} else {
switch (columnPermissionItem.getDesensitizationRule().getCustomBuiltInRule()) {
case RetainBeforeMAndAfterN:
if (StringUtils.isEmpty(originStr) || originStr.length() < columnPermissionItem.getDesensitizationRule().getM() + columnPermissionItem.getDesensitizationRule().getN() + 1) {
desensitizationStr = String.join("", Collections.nCopies(columnPermissionItem.getDesensitizationRule().getM(), "X")) + "***" + Collections.nCopies(columnPermissionItem.getDesensitizationRule().getN(), "X");
} else {
desensitizationStr = StringUtils.substring(originStr, 0, columnPermissionItem.getDesensitizationRule().getM() - 1) + "***" + StringUtils.substring(originStr, originStr.length() - columnPermissionItem.getDesensitizationRule().getN(), originStr.length() - 1);
}
break;
case RetainMToN:
if (columnPermissionItem.getDesensitizationRule().getM() > columnPermissionItem.getDesensitizationRule().getN()) {
desensitizationStr = "*** ***";
break;
}
if (StringUtils.isEmpty(originStr) || originStr.length() < columnPermissionItem.getDesensitizationRule().getM()) {
desensitizationStr = "*** ***";
break;
}
if (originStr.length() >= columnPermissionItem.getDesensitizationRule().getM() && originStr.length() >= columnPermissionItem.getDesensitizationRule().getN()) {
desensitizationStr = "***" + StringUtils.substring(originStr, columnPermissionItem.getDesensitizationRule().getM() - 1, columnPermissionItem.getDesensitizationRule().getN()) + "***";
break;
}
if (originStr.length() >= columnPermissionItem.getDesensitizationRule().getN() && originStr.length() < columnPermissionItem.getDesensitizationRule().getN()) {
desensitizationStr = "***" + StringUtils.substring(originStr, columnPermissionItem.getDesensitizationRule().getM() - 1, originStr.length());
}
break;
default:
break;
}
}
return desensitizationStr;
}
private static Map<String, Object> transTableNormal(List<ChartViewFieldDTO> fields, ChartViewWithBLOBs view, List<String[]> data, Map<String, ColumnPermissionItem> desensitizationList) {
Map<String, Object> map = new TreeMap<>(); Map<String, Object> map = new TreeMap<>();
List<Map<String, Object>> tableRow = new ArrayList<>(); List<Map<String, Object>> tableRow = new ArrayList<>();
data.forEach(ele -> { data.forEach(ele -> {
Map<String, Object> d = new HashMap<>(); Map<String, Object> d = new HashMap<>();
for (int i = 0; i < fields.size(); i++) { for (int i = 0; i < fields.size(); i++) {
if (CollectionUtils.isNotEmpty(desensitizationList) && desensitizationList.contains(fields.get(i).getDataeaseName())) { if (CollectionUtils.isNotEmpty(desensitizationList.keySet()) && desensitizationList.keySet().contains(fields.get(i).getDataeaseName())) {
d.put(fields.get(i).getDataeaseName(), ColumnPermissionConstants.Desensitization_desc); d.put(fields.get(i).getDataeaseName(), desensitizationValue(desensitizationList.get(fields.get(i).getDataeaseName()), String.valueOf(ele[i])));
continue; continue;
} }
if (i == ele.length) break; if (i == ele.length) break;
@ -1012,11 +1072,11 @@ public class ChartDataBuild {
// 堆叠柱状图 // 堆叠柱状图
if (CollectionUtils.isEmpty(xAxisExt)) { if (CollectionUtils.isEmpty(xAxisExt)) {
return transStackChartDataAntV(xAxis, yAxis, view, data, extStack, isDrill); return transStackChartDataAntV(xAxis, yAxis, view, data, extStack, isDrill);
// 分组柱状图 // 分组柱状图
} else if (CollectionUtils.isNotEmpty(xAxisExt) && CollectionUtils.isEmpty(extStack)) { } else if (CollectionUtils.isNotEmpty(xAxisExt) && CollectionUtils.isEmpty(extStack)) {
return transBaseGroupDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, view, data, isDrill); return transBaseGroupDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, view, data, isDrill);
// 分组堆叠柱状图 // 分组堆叠柱状图
}else { } else {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
List<AxisChartDataAntVDTO> dataList = new ArrayList<>(); List<AxisChartDataAntVDTO> dataList = new ArrayList<>();

View File

@ -43,9 +43,11 @@ import io.dataease.plugins.common.request.permission.DatasetRowPermissionsTreeOb
import io.dataease.plugins.datasource.provider.Provider; import io.dataease.plugins.datasource.provider.Provider;
import io.dataease.plugins.datasource.query.QueryProvider; import io.dataease.plugins.datasource.query.QueryProvider;
import io.dataease.plugins.loader.ClassloaderResponsity; import io.dataease.plugins.loader.ClassloaderResponsity;
import io.dataease.plugins.xpack.auth.dto.request.ColumnPermissionItem;
import io.dataease.provider.DDLProvider; import io.dataease.provider.DDLProvider;
import io.dataease.provider.ProviderFactory; import io.dataease.provider.ProviderFactory;
import io.dataease.provider.datasource.JdbcProvider; import io.dataease.provider.datasource.JdbcProvider;
import io.dataease.service.chart.util.ChartDataBuild;
import io.dataease.service.datasource.DatasourceService; import io.dataease.service.datasource.DatasourceService;
import io.dataease.service.engine.EngineService; import io.dataease.service.engine.EngineService;
import io.dataease.service.sys.SysAuthService; import io.dataease.service.sys.SysAuthService;
@ -87,7 +89,6 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static io.dataease.commons.constants.ColumnPermissionConstants.Desensitization_desc;
/** /**
* @Author gin * @Author gin
@ -523,7 +524,7 @@ public class DataSetTableService {
datasetTableField.setTableId(dataSetTableRequest.getId()); datasetTableField.setTableId(dataSetTableRequest.getId());
datasetTableField.setChecked(Boolean.TRUE); datasetTableField.setChecked(Boolean.TRUE);
List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableField); List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableField);
fields = permissionService.filterColumnPermissions(fields, new ArrayList<>(), dataSetTableRequest.getId(), null); fields = permissionService.filterColumnPermissions(fields, new HashMap<>(), dataSetTableRequest.getId(), null);
List<DatasetTableField> dimension = new ArrayList<>(); List<DatasetTableField> dimension = new ArrayList<>();
List<DatasetTableField> quota = new ArrayList<>(); List<DatasetTableField> quota = new ArrayList<>();
@ -583,7 +584,7 @@ public class DataSetTableService {
rowPermissionsTree.add(dto); rowPermissionsTree.add(dto);
} }
// 列权限 // 列权限
List<String> desensitizationList = new ArrayList<>(); Map<String, ColumnPermissionItem> desensitizationList = new HashMap<>();
fields = permissionService.filterColumnPermissions(fields, desensitizationList, datasetTable.getId(), null); fields = permissionService.filterColumnPermissions(fields, desensitizationList, datasetTable.getId(), null);
if (CollectionUtils.isEmpty(fields)) { if (CollectionUtils.isEmpty(fields)) {
map.put("fields", fields); map.put("fields", fields);
@ -945,8 +946,8 @@ public class DataSetTableService {
jsonArray = data.stream().map(ele -> { jsonArray = data.stream().map(ele -> {
Map<String, Object> tmpMap = new HashMap<>(); Map<String, Object> tmpMap = new HashMap<>();
for (int i = 0; i < ele.length; i++) { for (int i = 0; i < ele.length; i++) {
if (desensitizationList.contains(fieldArray[i])) { if (desensitizationList.keySet().contains(fieldArray[i])) {
tmpMap.put(fieldArray[i], Desensitization_desc); tmpMap.put(fieldArray[i], ChartDataBuild.desensitizationValue(desensitizationList.get(fieldArray[i]), String.valueOf(ele[i])));
} else { } else {
tmpMap.put(fieldArray[i], ele[i]); tmpMap.put(fieldArray[i], ele[i]);
} }

View File

@ -47,10 +47,11 @@ public class PermissionService {
if (StringUtils.isEmpty(datasetRowPermissions.getFilter())) { if (StringUtils.isEmpty(datasetRowPermissions.getFilter())) {
continue; continue;
} }
List<ChartCustomFilterItemDTO> lists = new Gson().fromJson(datasetRowPermissions.getFilter(), new TypeToken<ArrayList<ChartCustomFilterItemDTO>>(){}.getType()); List<ChartCustomFilterItemDTO> lists = new Gson().fromJson(datasetRowPermissions.getFilter(), new TypeToken<ArrayList<ChartCustomFilterItemDTO>>() {
}.getType());
lists.forEach(chartCustomFilterDTO -> { lists.forEach(chartCustomFilterDTO -> {
chartCustomFilterDTO.setFieldId(field.getId()); chartCustomFilterDTO.setFieldId(field.getId());
if(datasetRowPermissions.getAuthTargetType().equalsIgnoreCase("sysParams")){ if (datasetRowPermissions.getAuthTargetType().equalsIgnoreCase("sysParams")) {
chartCustomFilterDTO.setValue(values.get(chartCustomFilterDTO.getValue()).toString()); chartCustomFilterDTO.setValue(values.get(chartCustomFilterDTO.getValue()).toString());
} }
}); });
@ -62,9 +63,9 @@ public class PermissionService {
if (StringUtils.isEmpty(datasetRowPermissions.getEnumCheckField())) { if (StringUtils.isEmpty(datasetRowPermissions.getEnumCheckField())) {
continue; continue;
} }
if(datasetRowPermissions.getAuthTargetType().equalsIgnoreCase("sysParams")){ if (datasetRowPermissions.getAuthTargetType().equalsIgnoreCase("sysParams")) {
dto.setEnumCheckField(Arrays.asList(values.get(datasetRowPermissions.getEnumCheckField()).toString().split(",").clone())); dto.setEnumCheckField(Arrays.asList(values.get(datasetRowPermissions.getEnumCheckField()).toString().split(",").clone()));
}else { } else {
dto.setEnumCheckField(Arrays.asList(datasetRowPermissions.getEnumCheckField().split(",").clone())); dto.setEnumCheckField(Arrays.asList(datasetRowPermissions.getEnumCheckField().split(",").clone()));
} }
customFilter.add(dto); customFilter.add(dto);
@ -73,24 +74,57 @@ public class PermissionService {
return customFilter; return customFilter;
} }
public List<DatasetTableField> filterColumnPermissions(List<DatasetTableField> fields, List<String> desensitizationList, String datasetTableId, Long user){ //优先级依次为user role dept
public List<DatasetTableField> filterColumnPermissions(List<DatasetTableField> fields, Map<String, ColumnPermissionItem> desensitizationList, String datasetTableId, Long user) {
List<DatasetTableField> result = new ArrayList<>(); List<DatasetTableField> result = new ArrayList<>();
List<ColumnPermissionItem> allColumnPermissionItems = new ArrayList<>();
List<ColumnPermissionItem> userColumnPermissionItems = new ArrayList<>();
List<ColumnPermissionItem> roleColumnPermissionItems = new ArrayList<>();
List<ColumnPermissionItem> deptColumnPermissionItems = new ArrayList<>();
for (DataSetColumnPermissionsDTO dataSetColumnPermissionsDTO : columnPermissions(datasetTableId, user)) { for (DataSetColumnPermissionsDTO dataSetColumnPermissionsDTO : columnPermissions(datasetTableId, user)) {
ColumnPermissions columnPermissions = new Gson().fromJson(dataSetColumnPermissionsDTO.getPermissions(), ColumnPermissions.class); ColumnPermissions columnPermissions = new Gson().fromJson(dataSetColumnPermissionsDTO.getPermissions(), ColumnPermissions.class);
if(!columnPermissions.getEnable()){continue;} if (!columnPermissions.getEnable()) {
allColumnPermissionItems.addAll(columnPermissions.getColumns().stream().filter(columnPermissionItem -> columnPermissionItem.getSelected()).collect(Collectors.toList())); continue;
}
if (dataSetColumnPermissionsDTO.getAuthTargetType().equalsIgnoreCase("user")) {
userColumnPermissionItems.addAll(columnPermissions.getColumns().stream().filter(columnPermissionItem -> columnPermissionItem.getSelected()).collect(Collectors.toList()));
}
if (dataSetColumnPermissionsDTO.getAuthTargetType().equalsIgnoreCase("role")) {
roleColumnPermissionItems.addAll(columnPermissions.getColumns().stream().filter(columnPermissionItem -> columnPermissionItem.getSelected()).collect(Collectors.toList()));
}
if (dataSetColumnPermissionsDTO.getAuthTargetType().equalsIgnoreCase("dept")) {
deptColumnPermissionItems.addAll(columnPermissions.getColumns().stream().filter(columnPermissionItem -> columnPermissionItem.getSelected()).collect(Collectors.toList()));
}
} }
fields.forEach(field ->{
List<String> permissions = allColumnPermissionItems.stream().filter(columnPermissionItem -> columnPermissionItem.getId().equalsIgnoreCase(field.getId())).map(ColumnPermissionItem::getOpt).collect(Collectors.toList()); fields.forEach(field -> {
if(CollectionUtils.isEmpty(permissions)){ List<ColumnPermissionItem> fieldUserColumnPermissionItems = userColumnPermissionItems.stream().filter(columnPermissionItem -> columnPermissionItem.getId().equalsIgnoreCase(field.getId())).collect(Collectors.toList());
result.add(field); List<ColumnPermissionItem> fieldRoleColumnPermissionItems = roleColumnPermissionItems.stream().filter(columnPermissionItem -> columnPermissionItem.getId().equalsIgnoreCase(field.getId())).collect(Collectors.toList());
}else { List<ColumnPermissionItem> fieldDeptColumnPermissionItems = deptColumnPermissionItems.stream().filter(columnPermissionItem -> columnPermissionItem.getId().equalsIgnoreCase(field.getId())).collect(Collectors.toList());
if(!permissions.contains(ColumnPermissionConstants.Prohibit)){
desensitizationList.add(field.getDataeaseName()); if (CollectionUtils.isNotEmpty(fieldUserColumnPermissionItems)) {
if (fieldUserColumnPermissionItems.stream().map(ColumnPermissionItem::getOpt).collect(Collectors.toList()).contains(ColumnPermissionConstants.Desensitization)) {
desensitizationList.put(field.getDataeaseName(), fieldUserColumnPermissionItems.get(0));
result.add(field); result.add(field);
} }
return;
} }
if (CollectionUtils.isNotEmpty(fieldRoleColumnPermissionItems)) {
if (fieldRoleColumnPermissionItems.stream().map(ColumnPermissionItem::getOpt).collect(Collectors.toList()).contains(ColumnPermissionConstants.Desensitization)) {
desensitizationList.put(field.getDataeaseName(), fieldUserColumnPermissionItems.get(0));
result.add(field);
}
return;
}
if (CollectionUtils.isNotEmpty(fieldDeptColumnPermissionItems)) {
if (fieldDeptColumnPermissionItems.stream().map(ColumnPermissionItem::getOpt).collect(Collectors.toList()).contains(ColumnPermissionConstants.Desensitization)) {
desensitizationList.put(field.getDataeaseName(), fieldUserColumnPermissionItems.get(0));
result.add(field);
}
return;
}
result.add(field);
}); });
return result; return result;
} }
@ -107,7 +141,7 @@ public class PermissionService {
List<Long> roleIds = new ArrayList<>(); List<Long> roleIds = new ArrayList<>();
Long deptId = null; Long deptId = null;
if (userEntity == null ) { if (userEntity == null) {
return datasetRowPermissions; return datasetRowPermissions;
} }
if (userEntity.getIsAdmin()) { if (userEntity.getIsAdmin()) {
@ -123,14 +157,14 @@ public class PermissionService {
dataSetRowPermissionsDTO.setAuthTargetType("user"); dataSetRowPermissionsDTO.setAuthTargetType("user");
datasetRowPermissions.addAll(rowPermissionService.searchRowPermissions(dataSetRowPermissionsDTO)); datasetRowPermissions.addAll(rowPermissionService.searchRowPermissions(dataSetRowPermissionsDTO));
if(CollectionUtils.isNotEmpty(roleIds)){ if (CollectionUtils.isNotEmpty(roleIds)) {
dataSetRowPermissionsDTO.setAuthTargetIds(roleIds); dataSetRowPermissionsDTO.setAuthTargetIds(roleIds);
dataSetRowPermissionsDTO.setAuthTargetType("role"); dataSetRowPermissionsDTO.setAuthTargetType("role");
datasetRowPermissions.addAll(rowPermissionService.searchRowPermissions(dataSetRowPermissionsDTO)); datasetRowPermissions.addAll(rowPermissionService.searchRowPermissions(dataSetRowPermissionsDTO));
} }
if(deptId != null){ if (deptId != null) {
dataSetRowPermissionsDTO.setAuthTargetIds(Collections.singletonList(deptId)); dataSetRowPermissionsDTO.setAuthTargetIds(Collections.singletonList(deptId));
dataSetRowPermissionsDTO.setAuthTargetType("dept"); dataSetRowPermissionsDTO.setAuthTargetType("dept");
datasetRowPermissions.addAll(rowPermissionService.searchRowPermissions(dataSetRowPermissionsDTO)); datasetRowPermissions.addAll(rowPermissionService.searchRowPermissions(dataSetRowPermissionsDTO));
@ -160,7 +194,7 @@ public class PermissionService {
List<Long> roleIds = new ArrayList<>(); List<Long> roleIds = new ArrayList<>();
Long deptId = null; Long deptId = null;
if (userEntity == null ) { if (userEntity == null) {
return datasetColumnPermissions; return datasetColumnPermissions;
} }
if (userEntity.getIsAdmin()) { if (userEntity.getIsAdmin()) {
@ -174,27 +208,29 @@ public class PermissionService {
dataSetColumnPermissionsDTO.setAuthTargetIds(Collections.singletonList(userId)); dataSetColumnPermissionsDTO.setAuthTargetIds(Collections.singletonList(userId));
dataSetColumnPermissionsDTO.setAuthTargetType("user"); dataSetColumnPermissionsDTO.setAuthTargetType("user");
datasetColumnPermissions.addAll(columnPermissionService.searchPermissions(dataSetColumnPermissionsDTO)); datasetColumnPermissions.addAll(columnPermissionService.searchPermissions(dataSetColumnPermissionsDTO));
if(CollectionUtils.isNotEmpty(roleIds)){ if (CollectionUtils.isNotEmpty(roleIds)) {
dataSetColumnPermissionsDTO.setAuthTargetIds(roleIds); dataSetColumnPermissionsDTO.setAuthTargetIds(roleIds);
dataSetColumnPermissionsDTO.setAuthTargetType("role"); dataSetColumnPermissionsDTO.setAuthTargetType("role");
List<DataSetColumnPermissionsDTO> roleColumnPermissionsDTOS = new ArrayList<>(); List<DataSetColumnPermissionsDTO> roleColumnPermissionsDTOS = new ArrayList<>();
for (DataSetColumnPermissionsDTO columnPermissionsDTO : columnPermissionService.searchPermissions(dataSetColumnPermissionsDTO)) { for (DataSetColumnPermissionsDTO columnPermissionsDTO : columnPermissionService.searchPermissions(dataSetColumnPermissionsDTO)) {
columnPermissionsDTO.getWhiteListUser(); columnPermissionsDTO.getWhiteListUser();
List<Long> userIdList = new Gson().fromJson(columnPermissionsDTO.getWhiteListUser(), new TypeToken<List<Long>>() {}.getType()); List<Long> userIdList = new Gson().fromJson(columnPermissionsDTO.getWhiteListUser(), new TypeToken<List<Long>>() {
if(CollectionUtils.isEmpty(userIdList) || !userIdList.contains(userId)){ }.getType());
if (CollectionUtils.isEmpty(userIdList) || !userIdList.contains(userId)) {
roleColumnPermissionsDTOS.add(columnPermissionsDTO); roleColumnPermissionsDTOS.add(columnPermissionsDTO);
} }
} }
datasetColumnPermissions.addAll(roleColumnPermissionsDTOS); datasetColumnPermissions.addAll(roleColumnPermissionsDTOS);
} }
if(deptId != null){ if (deptId != null) {
dataSetColumnPermissionsDTO.setAuthTargetIds(Collections.singletonList(deptId)); dataSetColumnPermissionsDTO.setAuthTargetIds(Collections.singletonList(deptId));
dataSetColumnPermissionsDTO.setAuthTargetType("dept"); dataSetColumnPermissionsDTO.setAuthTargetType("dept");
List<DataSetColumnPermissionsDTO> deptColumnPermissionsDTOS = new ArrayList<>(); List<DataSetColumnPermissionsDTO> deptColumnPermissionsDTOS = new ArrayList<>();
for (DataSetColumnPermissionsDTO columnPermissionsDTO : columnPermissionService.searchPermissions(dataSetColumnPermissionsDTO)) { for (DataSetColumnPermissionsDTO columnPermissionsDTO : columnPermissionService.searchPermissions(dataSetColumnPermissionsDTO)) {
List<Long> userIdList = new Gson().fromJson(columnPermissionsDTO.getWhiteListUser(), new TypeToken<List<Long>>() {}.getType()); List<Long> userIdList = new Gson().fromJson(columnPermissionsDTO.getWhiteListUser(), new TypeToken<List<Long>>() {
if(CollectionUtils.isEmpty(userIdList) || !userIdList.contains(userId)){ }.getType());
if (CollectionUtils.isEmpty(userIdList) || !userIdList.contains(userId)) {
deptColumnPermissionsDTOS.add(columnPermissionsDTO); deptColumnPermissionsDTOS.add(columnPermissionsDTO);
} }
} }

View File

@ -19,6 +19,7 @@ import io.dataease.plugins.common.request.datasource.DatasourceRequest;
import io.dataease.plugins.common.request.permission.DataSetRowPermissionsTreeDTO; import io.dataease.plugins.common.request.permission.DataSetRowPermissionsTreeDTO;
import io.dataease.plugins.datasource.provider.Provider; import io.dataease.plugins.datasource.provider.Provider;
import io.dataease.plugins.datasource.query.QueryProvider; import io.dataease.plugins.datasource.query.QueryProvider;
import io.dataease.plugins.xpack.auth.dto.request.ColumnPermissionItem;
import io.dataease.provider.ProviderFactory; import io.dataease.provider.ProviderFactory;
import io.dataease.service.dataset.*; import io.dataease.service.dataset.*;
import io.dataease.service.datasource.DatasourceService; import io.dataease.service.datasource.DatasourceService;
@ -103,16 +104,16 @@ public class DirectFieldService implements DataSetFieldService {
List<DataSetRowPermissionsTreeDTO> rowPermissionsTree = new ArrayList<>(); List<DataSetRowPermissionsTreeDTO> rowPermissionsTree = new ArrayList<>();
if (userPermissions) { if (userPermissions) {
//列权限 //列权限
List<String> desensitizationList = new ArrayList<>(); Map<String, ColumnPermissionItem> desensitizationList = new HashMap<>();
fields = permissionService.filterColumnPermissions(fields, desensitizationList, datasetTable.getId(), userId); fields = permissionService.filterColumnPermissions(fields, desensitizationList, datasetTable.getId(), userId);
Map<String, DatasetTableField> fieldMap = fields.stream().collect(Collectors.toMap(DatasetTableField::getId, node -> node)); Map<String, DatasetTableField> fieldMap = fields.stream().collect(Collectors.toMap(DatasetTableField::getId, node -> node));
permissionFields = fieldIds.stream().map(fieldMap::get).collect(Collectors.toList()); permissionFields = fieldIds.stream().map(fieldMap::get).collect(Collectors.toList());
if (CollectionUtils.isEmpty(permissionFields) || permissionFields.get(0) == null) { if (CollectionUtils.isEmpty(permissionFields) || permissionFields.get(0) == null) {
return new ArrayList<>(); return new ArrayList<>();
} }
if (CollectionUtils.isNotEmpty(desensitizationList) && desensitizationList.contains(field.getDataeaseName())) { if (CollectionUtils.isNotEmpty(desensitizationList.keySet()) && desensitizationList.keySet().contains(field.getDataeaseName())) {
List<Object> results = new ArrayList<>(); List<Object> results = new ArrayList<>();
results.add(ColumnPermissionConstants.Desensitization_desc); results.add(ColumnPermissionItem.CompleteDesensitization);
return results; return results;
} }
//行权限 //行权限

View File

@ -1682,7 +1682,11 @@ export default {
enable: 'Enable', enable: 'Enable',
disable: 'Disable', disable: 'Disable',
prohibit: 'Prohibit', prohibit: 'Prohibit',
desensitization: 'Desensitization' desensitization: 'Desensitization',
desensitization_rule: 'Desensitization rule',
m: 'M ',
n: 'N ',
mgtn: 'M Cannot be greater than N'
}, },
row_permissions: 'Row Permissions', row_permissions: 'Row Permissions',
column_permissions: 'Column Permissions', column_permissions: 'Column Permissions',

View File

@ -1682,7 +1682,11 @@ export default {
enable: '啟用', enable: '啟用',
disable: '禁用', disable: '禁用',
prohibit: '禁用', prohibit: '禁用',
desensitization: '脫敏' desensitization: '脫敏',
desensitization_rule: '脱敏規則',
m: 'M等於',
n: 'N等於',
mgtn: 'M 不能大於 N'
}, },
row_permissions: '行權限', row_permissions: '行權限',
column_permissions: '列權限', column_permissions: '列權限',

View File

@ -1681,7 +1681,11 @@ export default {
enable: '启用', enable: '启用',
disable: '禁用', disable: '禁用',
prohibit: '禁用', prohibit: '禁用',
desensitization: '脱敏' desensitization: '脱敏',
desensitization_rule: '脱敏规则',
m: 'M等于',
n: 'N等于',
mgtn: 'M 不能大于 N'
}, },
row_permissions: '行权限', row_permissions: '行权限',
column_permissions: '列权限', column_permissions: '列权限',