mirror of
https://github.com/dataease/dataease.git
synced 2026-06-16 03:11:44 +08:00
refactor(X-Pack): 对权限体系进行重构-9
This commit is contained in:
@@ -13,6 +13,6 @@ export default {
|
||||
rewrite: path => path.replace(/^\/api/, 'de2api')
|
||||
}
|
||||
},
|
||||
port: 8080
|
||||
port: 7070
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,17 +14,12 @@ export const resourceTreeApi = (flag: string, isSystem?: boolean) => {
|
||||
|
||||
export const menuTreeApi = () => request.get({ url: '/auth/menuResource' })
|
||||
|
||||
export const resourcePerApi = data => request.post({ url: '/auth/busiPermission', data })
|
||||
export const subjectPermissionApi = data => request.post({ url: '/auth/subjectPermission', data })
|
||||
|
||||
export const menuPerApi = data => request.post({ url: '/auth/menuPermission', data })
|
||||
export const subjectPermissionSaveApi = data =>
|
||||
request.post({ url: '/auth/saveSubjectPermission', data })
|
||||
|
||||
export const busiPerSaveApi = data => request.post({ url: '/auth/saveBusiPer', data })
|
||||
export const menuPerSaveApi = data => request.post({ url: '/auth/saveMenuPer', data })
|
||||
export const resourcePermissionApi = data => request.post({ url: '/auth/resourcePermission', data })
|
||||
|
||||
export const resourceTargetPerApi = data =>
|
||||
request.post({ url: '/auth/busiTargetPermission', data })
|
||||
|
||||
export const menuTargetPerApi = data => request.post({ url: '/auth/menuTargetPermission', data })
|
||||
|
||||
export const busiTargetPerSaveApi = data => request.post({ url: '/auth/saveBusiTargetPer', data })
|
||||
export const menuTargetPerSaveApi = data => request.post({ url: '/auth/saveMenuTargetPer', data })
|
||||
export const resourcePermissionSaveApi = data =>
|
||||
request.post({ url: '/auth/saveResourcePermission', data })
|
||||
|
||||
22
pom.xml
22
pom.xml
@@ -10,6 +10,8 @@
|
||||
|
||||
<modules>
|
||||
<module>sdk</module>
|
||||
<module>de-xpack</module>
|
||||
<module>core</module>
|
||||
</modules>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
@@ -195,6 +197,26 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<version>3.4.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>remove-core-module</id>
|
||||
<phase>initialize</phase>
|
||||
<goals>
|
||||
<goal>remove-project-artifact</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<modules>
|
||||
<module>de-xpack</module>
|
||||
<module>core</module>
|
||||
</modules>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
@@ -1,21 +1,24 @@
|
||||
package io.dataease.api.permissions.auth.api;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
||||
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
|
||||
import io.dataease.api.permissions.auth.dto.*;
|
||||
|
||||
import io.dataease.api.permissions.auth.dto.SubjectPermissionEditor;
|
||||
import io.dataease.api.permissions.auth.dto.BasePermissionRequest;
|
||||
import io.dataease.api.permissions.auth.dto.BusiResourceRequest;
|
||||
import io.dataease.api.permissions.auth.dto.ResourcePermissionEditor;
|
||||
import io.dataease.api.permissions.auth.vo.PermissionVO;
|
||||
import io.dataease.api.permissions.auth.vo.ResourceItemVO;
|
||||
import io.dataease.api.permissions.auth.vo.ResourceVO;
|
||||
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.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Tag(name = "权限管理")
|
||||
@ApiSupport(order = 885, author = "fit2cloud-someone")
|
||||
@@ -26,54 +29,66 @@ public interface AuthApi {
|
||||
@PostMapping("/busiResource")
|
||||
List<ResourceVO> busiResource(@RequestBody BusiResourceRequest request);
|
||||
|
||||
@Operation(summary = "查询对象已授权资源")
|
||||
@ApiOperationSupport(order = 3)
|
||||
@PostMapping("/busiPermission")
|
||||
PermissionVO busiPermission(@RequestBody BusiPermissionRequest request);
|
||||
|
||||
@Operation(summary = "查询资源已授权对象")
|
||||
@ApiOperationSupport(order = 5)
|
||||
@PostMapping("/busiTargetPermission")
|
||||
PermissionVO busiTargetPermission(@RequestBody BusiPermissionRequest request);
|
||||
|
||||
@Operation(summary = "查询菜单树")
|
||||
@ApiOperationSupport(order = 2)
|
||||
@GetMapping("/menuResource")
|
||||
List<ResourceVO> menuResource();
|
||||
|
||||
@Operation(summary = "查询对象已授权菜单")
|
||||
@ApiOperationSupport(order = 4)
|
||||
@PostMapping("/menuPermission")
|
||||
PermissionVO menuPermission(@RequestBody MenuPermissionRequest request);
|
||||
@Operation(summary = "查询对象已授权资源")
|
||||
@ApiOperationSupport(order = 3)
|
||||
@PostMapping("/subjectPermission")
|
||||
PermissionVO subjectPermission(@RequestBody BasePermissionRequest request);
|
||||
|
||||
@Operation(summary = "查询菜单已授权对象")
|
||||
@ApiOperationSupport(order = 6)
|
||||
@PostMapping("/menuTargetPermission")
|
||||
PermissionVO menuTargetPermission(@RequestBody MenuPermissionRequest request);
|
||||
@Operation(summary = "查询资源已授权对象")
|
||||
@ApiOperationSupport(order = 5)
|
||||
@PostMapping("/resourcePermission")
|
||||
PermissionVO resourcePermission(@RequestBody BasePermissionRequest request);
|
||||
|
||||
/*
|
||||
* @Operation(summary = "查询对象已授权菜单")
|
||||
*
|
||||
* @ApiOperationSupport(order = 4)
|
||||
*
|
||||
* @PostMapping("/menuPermission")
|
||||
* PermissionVO menuPermission(@RequestBody MenuPermissionRequest request);
|
||||
*
|
||||
* @Operation(summary = "查询菜单已授权对象")
|
||||
*
|
||||
* @ApiOperationSupport(order = 6)
|
||||
*
|
||||
* @PostMapping("/menuTargetPermission")
|
||||
* PermissionVO menuTargetPermission(@RequestBody MenuPermissionRequest
|
||||
* request);
|
||||
*/
|
||||
|
||||
@Operation(summary = "保存资源权限")
|
||||
@ApiOperationSupport(order = 7)
|
||||
@PostMapping("/saveBusiPer")
|
||||
void saveBusiPer(@RequestBody BusiPerEditor editor);
|
||||
@PostMapping("/saveSubjectPermission")
|
||||
void saveSubjectPermission(@RequestBody SubjectPermissionEditor editor);
|
||||
|
||||
@Operation(summary = "资源维度保存权限")
|
||||
@ApiOperationSupport(order = 9)
|
||||
@PostMapping("/saveBusiTargetPer")
|
||||
void saveBusiTargetPer(@RequestBody BusiTargetPerCreator creator);
|
||||
|
||||
@Operation(summary = "保存菜单权限")
|
||||
@ApiOperationSupport(order = 8)
|
||||
@PostMapping("/saveMenuPer")
|
||||
void saveMenuPer(@RequestBody MenuPerEditor editor);
|
||||
|
||||
@Operation(summary = "菜单维度保存权限")
|
||||
@ApiOperationSupport(order = 10)
|
||||
@PostMapping("/saveMenuTargetPer")
|
||||
void saveMenuTargetPer(@RequestBody MenuTargetPerCreator creator);
|
||||
@PostMapping("/saveResourcePermission")
|
||||
void saveResourcePermission(@RequestBody ResourcePermissionEditor creator);
|
||||
|
||||
/*
|
||||
* @Operation(summary = "保存菜单权限")
|
||||
*
|
||||
* @ApiOperationSupport(order = 8)
|
||||
*
|
||||
* @PostMapping("/saveMenuPer")
|
||||
* void saveMenuPer(@RequestBody MenuPerEditor editor);
|
||||
*
|
||||
* @Operation(summary = "菜单维度保存权限")
|
||||
*
|
||||
* @ApiOperationSupport(order = 10)
|
||||
*
|
||||
* @PostMapping("/saveMenuTargetPer")
|
||||
* void saveMenuTargetPer(@RequestBody MenuTargetPerCreator creator);
|
||||
*/
|
||||
|
||||
@Hidden
|
||||
@PostMapping("/busiTargetPermissionAll")
|
||||
List<ResourceItemVO> busiTargetPermissionAll(@RequestBody BusiPermissionRequest request);
|
||||
List<ResourceItemVO> busiTargetPermissionAll(@RequestBody BasePermissionRequest request);
|
||||
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import java.io.Serializable;
|
||||
|
||||
@Schema(description = "权限查询条件")
|
||||
@Data
|
||||
public class BusiPermissionRequest implements Serializable {
|
||||
public class BasePermissionRequest implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = -2424587989223319563L;
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
package io.dataease.api.permissions.auth.dto;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Schema(description = "资源权限构造器")
|
||||
@Data
|
||||
public class BusiTargetPerCreator extends MenuTargetPerCreator{
|
||||
@Schema(description = "类型")
|
||||
private Integer type;
|
||||
@Schema(description = "标记")
|
||||
private String flag;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package io.dataease.api.permissions.auth.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class ResourceItemDTO implements Serializable {
|
||||
|
||||
@JsonSerialize(using= ToStringSerializer.class)
|
||||
@Schema(description = "资源ID")
|
||||
private Long id;
|
||||
@JsonSerialize(using= ToStringSerializer.class)
|
||||
@Schema(description = "组织ID")
|
||||
private Long oid;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package io.dataease.api.permissions.auth.dto;
|
||||
|
||||
import io.dataease.api.permissions.auth.vo.BasePermissionItem;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "资源权限构造器")
|
||||
@Data
|
||||
public class ResourcePermissionEditor {
|
||||
|
||||
@Schema(description = "资源集合")
|
||||
private List<ResourceItemDTO> resourceList;
|
||||
@Schema(description = "主体类型")
|
||||
private Integer type;
|
||||
@Schema(description = "资源类型标记")
|
||||
private String flag;
|
||||
@Schema(description = "权限集合")
|
||||
private List<BasePermissionItem> permissions;
|
||||
}
|
||||
@@ -1,17 +1,19 @@
|
||||
package io.dataease.api.permissions.auth.dto;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import io.dataease.api.permissions.auth.vo.PermissionItem;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
@SuppressWarnings("unused")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Schema(description = "业务权限编辑器")
|
||||
@Data
|
||||
public class BusiPerEditor extends BusiPermissionRequest implements Serializable {
|
||||
public class SubjectPermissionEditor extends BasePermissionRequest implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 3067994331757489447L;
|
||||
@Schema(description = "编辑权限节点集合")
|
||||
@@ -0,0 +1,24 @@
|
||||
package io.dataease.api.permissions.auth.vo;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class BasePermissionItem implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = -6537851979745319692L;
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@Schema(description = "ID")
|
||||
private Long id;
|
||||
@Schema(description = "权重")
|
||||
private int weight;
|
||||
@Schema(description = "独立权重")
|
||||
private int ext;
|
||||
|
||||
}
|
||||
@@ -3,28 +3,19 @@ package io.dataease.api.permissions.auth.vo;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.*;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Schema(description = "权限项")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class PermissionItem implements Serializable {
|
||||
public class PermissionItem extends BasePermissionItem implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = -6537851979745319692L;
|
||||
@JsonSerialize(using= ToStringSerializer.class)
|
||||
@Schema(description = "ID")
|
||||
private Long id;
|
||||
@Schema(description = "权重")
|
||||
private int weight;
|
||||
@Schema(description = "独立权重")
|
||||
private int ext;
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@Schema(description = "组织ID")
|
||||
private Long oid;
|
||||
}
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
package io.dataease.api.permissions.auth.vo;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.dataease.model.TreeResultModel;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import io.dataease.model.TreeResultModel;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(description = "资源结点")
|
||||
public class ResourceVO implements TreeResultModel<ResourceVO>, Serializable {
|
||||
@@ -27,4 +28,7 @@ public class ResourceVO implements TreeResultModel<ResourceVO>, Serializable {
|
||||
private boolean leaf = false;
|
||||
@Schema(description = "额外标识")
|
||||
private Integer extraFlag = 0;
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@Schema(description = "组织ID")
|
||||
private Long oid;
|
||||
}
|
||||
|
||||
@@ -1,18 +1,13 @@
|
||||
package io.dataease.constant;
|
||||
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum BusiResourceEnum {
|
||||
PANEL(1), SCREEN(2), DATASET(3), DATASOURCE(4), DATA_FILLING(8), SPREADSHEET(10);
|
||||
MENU(0), PANEL(1), SCREEN(2), DATASET(3), DATASOURCE(4), DATA_FILLING(8), SPREADSHEET(10);
|
||||
|
||||
private int flag;
|
||||
|
||||
public int getFlag() {
|
||||
return flag;
|
||||
}
|
||||
|
||||
public void setFlag(int flag) {
|
||||
this.flag = flag;
|
||||
}
|
||||
private final int flag;
|
||||
|
||||
BusiResourceEnum(int flag) {
|
||||
this.flag = flag;
|
||||
|
||||
@@ -63,6 +63,12 @@ public class PerBusiResource {
|
||||
@Column(name = "extra_flag1", nullable = false)
|
||||
private Integer extraFlag1;
|
||||
|
||||
@NotNull
|
||||
@Comment("是否组织根目录(随组织生命周期)")
|
||||
@ColumnDefault("false")
|
||||
@Column(name = "org_root", nullable = false)
|
||||
private Boolean orgRoot = false;
|
||||
|
||||
@NotNull
|
||||
@Comment("创建时间")
|
||||
@ColumnDefault("0")
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
package io.dataease.model;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Schema(description = "业务资源结点")
|
||||
@Data
|
||||
public class BusiNodeVO implements TreeResultModel<BusiNodeVO>, Serializable {
|
||||
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 8191619596741217494L;
|
||||
|
||||
@@ -36,4 +36,6 @@ public class BusiNodeVO implements TreeResultModel<BusiNodeVO>, Serializable {
|
||||
private List<BusiNodeVO> children;
|
||||
@Schema(description = "独立权重")
|
||||
private Integer ext;
|
||||
@Schema(description = "组织根节点")
|
||||
private boolean orgRoot;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user