feat(X-Pack): 定时报告-支持数据权限设置

This commit is contained in:
fit2cloud-chenyw
2026-03-10 15:09:36 +08:00
committed by fit2cloud-chenyw
parent 00548d8331
commit 405da0f81e
17 changed files with 371 additions and 5 deletions

View File

@@ -0,0 +1,21 @@
package io.dataease.api.report.bo;
import lombok.Data;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
import java.util.Set;
@Data
public class DatasetPermissionTemplate {
private Long datasetId;
private Set<Long> dsIdSet;
private List<TableSysVariable> tableSysVariables;
public boolean hasSysVariable() {
return CollectionUtils.isNotEmpty(tableSysVariables);
}
}

View File

@@ -0,0 +1,17 @@
package io.dataease.api.report.bo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
@Data
public class TableSysVariable {
private Long tableId;
private List<String> sysVariables;
}

View File

@@ -3,6 +3,7 @@ package io.dataease.api.visualization;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.api.report.bo.DatasetPermissionTemplate;
import io.dataease.api.visualization.dto.VisualizationViewTableDTO;
import io.dataease.api.visualization.request.DataVisualizationBaseRequest;
import io.dataease.api.visualization.request.VisualizationAppExportRequest;
@@ -14,6 +15,7 @@ import io.dataease.auth.DeApiPath;
import io.dataease.auth.DePermit;
import io.dataease.model.BusiNodeRequest;
import io.dataease.model.BusiNodeVO;
import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.*;
@@ -170,4 +172,7 @@ public interface DataVisualizationApi {
@Operation(summary = "导出图片日志记录")
void exportLogImg(@RequestBody DataVisualizationBaseRequest request) throws Exception;
@Hidden
List<DatasetPermissionTemplate> queruDatasetPermissionTemplate(Long resourceId);
}

View File

@@ -0,0 +1,11 @@
package io.dataease.api.permissions.auth.api;
import io.dataease.api.permissions.auth.dto.ResourcePermissionRequest;
import io.dataease.api.permissions.auth.vo.ResourcePermissionVO;
import java.util.List;
public interface ResourceAuthApi {
List<ResourcePermissionVO> queryResourcePermission(ResourcePermissionRequest request);
}

View File

@@ -0,0 +1,17 @@
package io.dataease.api.permissions.auth.dto;
import io.dataease.api.permissions.user.vo.UserReciVO;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class ResourcePermissionRequest implements Serializable {
private List<Long> resourceIds;
private Integer resourceType;
private List<UserReciVO> targets;
}

View File

@@ -0,0 +1,14 @@
package io.dataease.api.permissions.auth.vo;
import io.dataease.api.permissions.user.vo.UserReciVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
@EqualsAndHashCode(callSuper = true)
@Data
public class ResourcePermissionVO extends UserReciVO implements Serializable {
private Long resourceId;
private boolean enable;
}

View File

@@ -0,0 +1,10 @@
package io.dataease.api.permissions.dataset.api;
import io.dataease.api.permissions.dataset.vo.RowColPermissionItem;
import java.util.List;
public interface RowColPermissionApi {
List<RowColPermissionItem> query(List<Long> datastetIds);
}

View File

@@ -0,0 +1,15 @@
package io.dataease.api.permissions.dataset.bo;
import io.dataease.api.permissions.dataset.vo.ColPermissionInfo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class ColPermissionBo implements Serializable {
private boolean enable;
private List<ColPermissionInfo> columns;
}

View File

@@ -0,0 +1,18 @@
package io.dataease.api.permissions.dataset.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class ColPermissionInfo implements Serializable {
private boolean selected;
private Long id;
private String opt;
private Object desensitizationRule;
}

View File

@@ -0,0 +1,29 @@
package io.dataease.api.permissions.dataset.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class RowColPermissionItem implements Serializable {
private Long id;
private boolean enable;
private String authTargetType;
private String authTargetId;
private Long datasetId;
private String permissionText;
private List<Long> whiteListUserIds;
private String type;
private List<ColPermissionInfo> colPermissionInfos;
}

View File

@@ -244,4 +244,8 @@ public interface UserApi {
@GetMapping("/lang")
String userLang();
@Hidden
List<UserReciVO> getFormatRecipient(Long oid, List<Long> uidList, List<Long> ridList);
}

View File

@@ -0,0 +1,26 @@
package io.dataease.api.permissions.user.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
@AllArgsConstructor
@NoArgsConstructor
@Data
public class UserReciVO implements Serializable {
private Long userId;
private List<Long> roleIds;
private boolean hasRootRole;
private List<Long> commonRoleIds;
public UserReciVO(Long userId) {
this.userId = userId;
}
}

View File

@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
import static io.dataease.constant.AuthResourceEnum.SYSTEM;
@@ -68,4 +69,7 @@ public interface SysVariablesApi {
@PostMapping("/value/batchDel")
void batchDel(@RequestBody List<Long> ids);
@Hidden
Map<Long, Map<String, String>> queryBatchSysVariable(List<Long> uids);
}