提交 9e5fde11 authored 作者: taojinlong's avatar taojinlong

fix: 行权限系统变量

上级 59d07862
...@@ -32,8 +32,6 @@ public class DataSetGroupController { ...@@ -32,8 +32,6 @@ public class DataSetGroupController {
@Resource @Resource
private DataSetGroupService dataSetGroupService; private DataSetGroupService dataSetGroupService;
@Resource @Resource
private ExtractDataService extractDataService;
@Resource
private KettleService kettleService; private KettleService kettleService;
@DePermissions(value = { @DePermissions(value = {
......
...@@ -812,8 +812,8 @@ public class Db2QueryProvider extends QueryProvider { ...@@ -812,8 +812,8 @@ public class Db2QueryProvider extends QueryProvider {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
......
...@@ -858,8 +858,8 @@ public class EsQueryProvider extends QueryProvider { ...@@ -858,8 +858,8 @@ public class EsQueryProvider extends QueryProvider {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
......
...@@ -794,8 +794,8 @@ public class HiveQueryProvider extends QueryProvider { ...@@ -794,8 +794,8 @@ public class HiveQueryProvider extends QueryProvider {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
......
...@@ -791,8 +791,8 @@ public class ImpalaQueryProvider extends QueryProvider { ...@@ -791,8 +791,8 @@ public class ImpalaQueryProvider extends QueryProvider {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
......
...@@ -776,8 +776,8 @@ public class MongoQueryProvider extends QueryProvider { ...@@ -776,8 +776,8 @@ public class MongoQueryProvider extends QueryProvider {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
......
...@@ -799,8 +799,8 @@ public class MysqlQueryProvider extends QueryProvider { ...@@ -799,8 +799,8 @@ public class MysqlQueryProvider extends QueryProvider {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
......
...@@ -850,8 +850,8 @@ public class OracleQueryProvider extends QueryProvider { ...@@ -850,8 +850,8 @@ public class OracleQueryProvider extends QueryProvider {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
......
...@@ -825,8 +825,8 @@ public class PgQueryProvider extends QueryProvider { ...@@ -825,8 +825,8 @@ public class PgQueryProvider extends QueryProvider {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
......
...@@ -758,8 +758,8 @@ public class RedshiftQueryProvider extends QueryProvider { ...@@ -758,8 +758,8 @@ public class RedshiftQueryProvider extends QueryProvider {
whereValue = PgConstants.WHERE_VALUE_NULL; whereValue = PgConstants.WHERE_VALUE_NULL;
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originName); whereTerm = String.format(whereTerm, originName);
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
......
...@@ -859,8 +859,8 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -859,8 +859,8 @@ public class SqlserverQueryProvider extends QueryProvider {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
......
...@@ -45,11 +45,11 @@ public class DataSetGroupService { ...@@ -45,11 +45,11 @@ public class DataSetGroupService {
@DeCleaner(DePermissionType.DATASET) @DeCleaner(DePermissionType.DATASET)
public DataSetGroupDTO save(DatasetGroup datasetGroup) throws Exception { public DataSetGroupDTO save(DatasetGroup datasetGroup) throws Exception {
if (StringUtils.isEmpty(datasetGroup.getType())) {
throw new Exception("type can not be empty");
}
checkName(datasetGroup); checkName(datasetGroup);
if (StringUtils.isEmpty(datasetGroup.getId())) { if (StringUtils.isEmpty(datasetGroup.getId())) {
if (StringUtils.isEmpty(datasetGroup.getType())) {
throw new Exception("type can not be empty");
}
datasetGroup.setId(UUID.randomUUID().toString()); datasetGroup.setId(UUID.randomUUID().toString());
datasetGroup.setCreateBy(AuthUtils.getUser().getUsername()); datasetGroup.setCreateBy(AuthUtils.getUser().getUsername());
datasetGroup.setCreateTime(System.currentTimeMillis()); datasetGroup.setCreateTime(System.currentTimeMillis());
......
...@@ -30,7 +30,7 @@ public class PermissionService { ...@@ -30,7 +30,7 @@ public class PermissionService {
public List<ChartFieldCustomFilterDTO> getCustomFilters(List<DatasetTableField> fields, DatasetTable datasetTable, Long user) { public List<ChartFieldCustomFilterDTO> getCustomFilters(List<DatasetTableField> fields, DatasetTable datasetTable, Long user) {
List<ChartFieldCustomFilterDTO> customFilter = new ArrayList<>(); List<ChartFieldCustomFilterDTO> customFilter = new ArrayList<>();
Map<String, Object> values = new HashMap<>(); Map<String, String> values = new HashMap<>();
for (DatasetRowPermissions datasetRowPermissions : rowPermissions(datasetTable.getId(), user, values)) { for (DatasetRowPermissions datasetRowPermissions : rowPermissions(datasetTable.getId(), user, values)) {
ChartFieldCustomFilterDTO dto = new ChartFieldCustomFilterDTO(); ChartFieldCustomFilterDTO dto = new ChartFieldCustomFilterDTO();
if (StringUtils.isEmpty(datasetRowPermissions.getDatasetFieldId())) { if (StringUtils.isEmpty(datasetRowPermissions.getDatasetFieldId())) {
...@@ -51,6 +51,7 @@ public class PermissionService { ...@@ -51,6 +51,7 @@ public class PermissionService {
lists.forEach(chartCustomFilterDTO -> { lists.forEach(chartCustomFilterDTO -> {
chartCustomFilterDTO.setFieldId(field.getId()); chartCustomFilterDTO.setFieldId(field.getId());
if(datasetRowPermissions.getAuthTargetType().equalsIgnoreCase("sysParams")){ if(datasetRowPermissions.getAuthTargetType().equalsIgnoreCase("sysParams")){
System.out.println(values.get(chartCustomFilterDTO.getValue()).toString());
chartCustomFilterDTO.setValue(values.get(chartCustomFilterDTO.getValue()).toString()); chartCustomFilterDTO.setValue(values.get(chartCustomFilterDTO.getValue()).toString());
} }
}); });
...@@ -96,7 +97,7 @@ public class PermissionService { ...@@ -96,7 +97,7 @@ public class PermissionService {
} }
private List<DatasetRowPermissions> rowPermissions(String datasetId, Long userId, Map<String, Object> values) { private List<DatasetRowPermissions> rowPermissions(String datasetId, Long userId, Map<String, String> values) {
List<DatasetRowPermissions> datasetRowPermissions = new ArrayList<>(); List<DatasetRowPermissions> datasetRowPermissions = new ArrayList<>();
Map<String, RowPermissionService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((RowPermissionService.class)); Map<String, RowPermissionService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((RowPermissionService.class));
if (beansOfType.keySet().size() == 0) { if (beansOfType.keySet().size() == 0) {
...@@ -139,7 +140,7 @@ public class PermissionService { ...@@ -139,7 +140,7 @@ public class PermissionService {
values.put("${sysParams.userEmail}", userEntity.getEmail()); values.put("${sysParams.userEmail}", userEntity.getEmail());
values.put("${sysParams.userSource}", userEntity.getFrom() == 0 ? "LOCAL" : "OIDC"); values.put("${sysParams.userSource}", userEntity.getFrom() == 0 ? "LOCAL" : "OIDC");
values.put("${sysParams.dept}", userEntity.getDeptName()); values.put("${sysParams.dept}", userEntity.getDeptName());
values.put("${sysParams.roles}", StringUtils.joinWith(",", currentRoleDtos.stream().map(CurrentRoleDto::getName).collect(Collectors.toList()))); values.put("${sysParams.roles}", String.join(",", currentRoleDtos.stream().map(CurrentRoleDto::getName).collect(Collectors.toList())));
return datasetRowPermissions; return datasetRowPermissions;
} }
......
...@@ -57,7 +57,7 @@ public class DatasourceService { ...@@ -57,7 +57,7 @@ public class DatasourceService {
private DataSetGroupService dataSetGroupService; private DataSetGroupService dataSetGroupService;
@Resource @Resource
private CommonThreadPool commonThreadPool; private CommonThreadPool commonThreadPool;
private static List<String> dsTypes = Arrays.asList("excel", "mysql", "hive", "impala", "mariadb", "ds_doris", "pg", "sqlServer", "oracle", "mongo", "ck", "db2", "es", "redshift", "api"); private static List<String> dsTypes = Arrays.asList("TiDB", "StarRocks", "excel", "mysql", "hive", "impala", "mariadb", "ds_doris", "pg", "sqlServer", "oracle", "mongo", "ck", "db2", "es", "redshift", "api");
@DeCleaner(DePermissionType.DATASOURCE) @DeCleaner(DePermissionType.DATASOURCE)
public Datasource addDatasource(Datasource datasource) throws Exception{ public Datasource addDatasource(Datasource datasource) throws Exception{
......
...@@ -896,6 +896,8 @@ export default { ...@@ -896,6 +896,8 @@ export default {
filter_value_can_null: 'Filter value can not empty', filter_value_can_null: 'Filter value can not empty',
filter_like: 'Contain', filter_like: 'Contain',
filter_not_like: 'Not Contain', filter_not_like: 'Not Contain',
filter_in: 'IN',
filter_not_in: 'NOT IN',
chart_details: 'Chart Details', chart_details: 'Chart Details',
export_details: 'Export Details', export_details: 'Export Details',
color_light: 'Light', color_light: 'Light',
......
...@@ -897,6 +897,8 @@ export default { ...@@ -897,6 +897,8 @@ export default {
filter_value_can_null: '過濾值不能爲空', filter_value_can_null: '過濾值不能爲空',
filter_like: '包含', filter_like: '包含',
filter_not_like: '不包含', filter_not_like: '不包含',
filter_in: '屬於',
filter_not_in: '不屬於',
color_light: '明亮', color_light: '明亮',
color_classical: '經典', color_classical: '經典',
color_fresh: '清新', color_fresh: '清新',
......
...@@ -899,6 +899,8 @@ export default { ...@@ -899,6 +899,8 @@ export default {
filter_value_can_null: '过滤值不能为空', filter_value_can_null: '过滤值不能为空',
filter_like: '包含', filter_like: '包含',
filter_not_like: '不包含', filter_not_like: '不包含',
filter_in: '属于',
filter_not_in: '不属于',
color_light: '明亮', color_light: '明亮',
color_classical: '经典', color_classical: '经典',
color_fresh: '清新', color_fresh: '清新',
......
...@@ -226,6 +226,10 @@ export default { ...@@ -226,6 +226,10 @@ export default {
return 'API' return 'API'
} else if (type === 'impala') { } else if (type === 'impala') {
return 'Apache Impala' return 'Apache Impala'
}if (type === 'TiDB') {
return 'TiDB'
}if (type === 'StarRocks') {
return 'StarRocks'
} }
}, },
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论