更新了api-permissions模块

This commit is contained in:
root 2025-06-22 11:11:35 +08:00
parent 5c9cd1a997
commit 018ef1e445
21 changed files with 183 additions and 30 deletions

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>api</artifactId>
<groupId>io.gisbi</groupId>
<version>1.0.0</version>
<version>2.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -34,7 +34,7 @@
<dependency>
<groupId>io.gisbi</groupId>
<artifactId>extensions-view</artifactId>
<version>1.0.0</version>
<version>2.0.0</version>
</dependency>
</dependencies>

View File

@ -76,8 +76,8 @@ public interface InteractiveAuthApi {
@PostMapping("/queryAuth/{id}")
PermissionValVO queryAuth(@PathVariable("id") Long id);
@GetMapping("/query2Root/{id}/{flag}")
List<ResourceNodeVO> query2Root(@PathVariable("id") Long id, @PathVariable("flag") Integer flag);
@GetMapping("/query2Root/{id}/{flag}/{logOT}")
List<ResourceNodeVO> query2Root(@PathVariable("id") Long id, @PathVariable("flag") Integer flag, Integer logOT);
@GetMapping("/checkEmpty")
boolean checkEmpty();
@ -89,4 +89,8 @@ public interface InteractiveAuthApi {
@PostMapping("/batchAuthorize")
void batchAuthorize(@RequestBody BusiBatchAuthorizeRequest request);
@Hidden
@PostMapping("/revert")
void revert();
}

View File

@ -19,4 +19,5 @@ public class BusiResourceCreator implements Serializable {
private Long pid = 0L;
private Boolean leaf;
private int extraFlag;
private int extraFlag1;
}

View File

@ -14,4 +14,5 @@ public class BusiResourceEditor implements Serializable {
private String name;
private String flag;
private int extraFlag;
private int extraFlag1;
}

View File

@ -3,6 +3,9 @@ package io.gisbi.api.permissions.dataset.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.gisbi.api.permissions.dataset.dto.DataSetColumnPermissionsDTO;
import io.gisbi.auth.DeApiPath;
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.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
@ -12,19 +15,24 @@ import java.util.List;
import static io.gisbi.constant.AuthResourceEnum.DATASET;
@Hidden
@Tag(name = "列权限")
@DeApiPath(value = "/dataset/columnPermissions", rt = DATASET)
public interface ColumnPermissionsApi {
@Operation(summary = "查询列权限列表")
@GetMapping("/pager/{datasetId}/{goPage}/{pageSize}")
public IPage<DataSetColumnPermissionsDTO> columnPermissions(@PathVariable("datasetId") Long datasetId, @PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize);
@Operation(summary = "保存")
@PostMapping("save")
public void save(@RequestBody DataSetColumnPermissionsDTO dataSetColumnPermissionsDTO);
@Operation(summary = "删除")
@PostMapping("/delete")
public void delete(@RequestBody DataSetColumnPermissionsDTO dataSetColumnPermissionsDTO);
@Operation(summary = "获取详细信息")
@PostMapping("/info")
public DataSetColumnPermissionsDTO DataSetColumnPermissionInfo(@RequestBody DataSetColumnPermissionsDTO request);

View File

@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import io.gisbi.api.permissions.dataset.dto.*;
import io.gisbi.api.permissions.user.vo.UserFormVO;
import io.gisbi.auth.DeApiPath;
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.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
@ -13,28 +16,32 @@ import java.util.List;
import static io.gisbi.constant.AuthResourceEnum.DATASET;
@Hidden
@Tag(name = "行权限")
@DeApiPath(value = "/dataset/rowPermissions", rt = DATASET)
public interface RowPermissionsApi {
@Operation(summary = "查询行权限列表")
@GetMapping("/pager/{datasetId}/{goPage}/{pageSize}")
public IPage<DataSetRowPermissionsTreeDTO> rowPermissions(@PathVariable("datasetId") Long datasetId, @PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize);
@Operation(summary = "保存")
@PostMapping("save")
public void save(@RequestBody DataSetRowPermissionsTreeDTO datasetRowPermissions);
@Operation(summary = "删除")
@PostMapping("/delete")
public void delete(@RequestBody DataSetRowPermissionsTreeDTO datasetRowPermissions);
@Operation(summary = "授权对象")
@GetMapping("/authObjs/{datasetId}/{type}")
public List<Item> authObjs(@PathVariable("datasetId") Long datasetId, @PathVariable("type") String type);
@Operation(summary = "获取详细信息")
@PostMapping("/dataSetRowPermissionInfo")
public DataSetRowPermissionsTreeDTO dataSetRowPermissionInfo(@RequestBody DataSetRowPermissionsTreeDTO request);
@Operation(summary = "白名单")
@PostMapping("/whiteListUsers")
public List<UserFormVO> whiteListUsers(@RequestBody WhiteListUsersRequest request);

View File

@ -63,8 +63,8 @@ public class DataSetRowPermissionsTreeDTO {
private String datasetName;
private String authTargetName;
private DatasetRowPermissionsTreeObj tree;
private DatasetRowPermissionsTreeObj tree;
private List<UserFormVO> whiteListUsers;
private List<RoleVO> whiteListRoles;
private List<Long> authTargetIds;

View File

@ -66,9 +66,12 @@ public interface EmbeddedApi {
@PostMapping("/initIframe")
void initIframe(@RequestBody EmbeddedOrigin origin);
@ApiOperationSupport(order = 7)
@Operation(summary = "获取Token参数")
@GetMapping("/getTokenArgs")
Map<String, Object> getTokenArgs();
@Hidden
@GetMapping("/limitCount")
int getLimitCount();
}

View File

@ -49,9 +49,13 @@ public interface LoginApi {
@GetMapping("/logout")
void logout();
@Operation(summary = "MFA二维码信息")
@ApiOperationSupport(order = 5)
@PostMapping("/mfa/qr/{id}")
MfaQrVO mfaQr(@PathVariable("id") Long id);
@Operation(summary = "MFA登录")
@ApiOperationSupport(order = 6)
@PostMapping("/mfa/login")
TokenVO mfaLogin(@RequestBody MfaLoginDTO dto);

View File

@ -1,18 +1,20 @@
package io.gisbi.api.permissions.login.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
@Schema(description = "MFA登录DTO")
@Data
public class MfaLoginDTO implements Serializable {
@Serial
private static final long serialVersionUID = -8218773323394184937L;
@Schema(description = "ID")
private Long id;
@Schema(description = "CODE")
private String code;
@Schema(description = "KEY")
private String key;
}

View File

@ -1,16 +1,19 @@
package io.gisbi.api.permissions.login.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
@Schema(description = "MFA二维码信息")
@Data
public class MfaQrVO implements Serializable {
@Serial
private static final long serialVersionUID = -3465640829593927730L;
@Schema(description = "图片")
private String img;
@Schema(description = "KEY")
private String key;
}

View File

@ -3,10 +3,9 @@ package io.gisbi.api.permissions.org.api;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.gisbi.api.permissions.org.dto.OrgCreator;
import io.gisbi.api.permissions.org.dto.OrgEditor;
import io.gisbi.api.permissions.org.dto.OrgLazyRequest;
import io.gisbi.api.permissions.org.dto.OrgRequest;
import io.gisbi.api.permissions.org.vo.MountedVO;
import io.gisbi.api.permissions.org.vo.OrgDetailVO;
import io.gisbi.api.permissions.org.vo.OrgPageVO;
import io.gisbi.api.permissions.org.vo.*;
import io.gisbi.auth.DeApiPath;
import io.gisbi.auth.DePermit;
import io.gisbi.model.KeywordRequest;
@ -22,7 +21,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import static io.gisbi.constant.AuthResourceEnum.ORG;
import static io.gisbi.constant.AuthResourceEnum.ROLE;
@Tag(name = "组织")
@ApiSupport(order = 886, author = "fit2cloud-someone")
@ -34,10 +32,15 @@ public interface OrgApi {
@DePermit("m:read")
List<OrgPageVO> pageTree(@RequestBody OrgRequest request);
@Operation(summary = "懒加载组织树")
@PostMapping("/page/lazyTree")
@DePermit("m:read")
LazyTreeVO lazyPageTree(@RequestBody OrgLazyRequest request);
@Operation(summary = "创建")
@DePermit({"m:read"})
@PostMapping("/page/create")
void create(@RequestBody OrgCreator creator);
Long create(@RequestBody OrgCreator creator);
@Operation(summary = "编辑")
@DePermit({"m:read", "#p0.id+':manage'"})
@ -54,6 +57,10 @@ public interface OrgApi {
@PostMapping("/mounted")
List<MountedVO> mounted(@RequestBody KeywordRequest request);
@Operation(summary = "查询权限内组织树(懒加载)")
@PostMapping("/lazyMounted")
LazyMountedVO lazyMounted(@RequestBody OrgLazyRequest request);
@Operation(summary = "", hidden = true)
@GetMapping("/resourceExist/{oid}")
boolean resourceExist(@PathVariable("oid") Long oid);

View File

@ -0,0 +1,17 @@
package io.gisbi.api.permissions.org.dto;
import io.gisbi.model.KeywordRequest;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
@Schema(description = "组织列表过滤器")
@EqualsAndHashCode(callSuper = true)
@Data
public class OrgLazyRequest extends KeywordRequest implements Serializable {
@Schema(description = "上级节点ID")
private Long pid;
@Schema(description = "是否降序", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean desc = true;
}

View File

@ -0,0 +1,16 @@
package io.gisbi.api.permissions.org.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class LazyMountedVO implements Serializable {
private List<MountedVO> nodes;
private String name;
private List<String> expandKeyList;
}

View File

@ -0,0 +1,30 @@
package io.gisbi.api.permissions.org.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.Serializable;
import java.util.List;
@Schema(description = "组织列表VO")
@Data
public class LazyOrgTreeNode implements Serializable {
@Schema(description = "ID")
@JsonSerialize(using= ToStringSerializer.class)
private Long id;
@Schema(description = "PID")
@JsonSerialize(using= ToStringSerializer.class)
private Long pid;
@Schema(description = "名称")
private String name;
@Schema(description = "创建时间")
private Long createTime;
@Schema(description = "只读")
private boolean readOnly = true;
@Schema(description = "有子集")
private boolean hasChildren;
@Schema(description = "子集")
private List<LazyOrgTreeNode> children;
}

View File

@ -0,0 +1,15 @@
package io.gisbi.api.permissions.org.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Schema(description = "组织树VO")
@Data
public class LazyTreeVO implements Serializable {
@Schema(description = "节点")
private List<LazyOrgTreeNode> nodes;
@Schema(description = "展开节点")
private List<String> expandKeyList;
}

View File

@ -25,4 +25,6 @@ public class MountedVO implements Serializable {
private boolean readOnly = true;
@Schema(description = "子集")
private List<MountedVO> children;
private boolean leaf;
}

View File

@ -35,7 +35,7 @@ public interface RoleApi {
@Operation(summary = "创建")
@DePermit("m:read")
@PostMapping("/create")
void create(@RequestBody RoleCreator creator);
Long create(@RequestBody RoleCreator creator);
@Operation(summary = "编辑")
@DePermit({"m:read", "#p0.id + ':manage'"})

View File

@ -52,6 +52,10 @@ public interface UserApi {
@GetMapping("/personInfo")
UserFormVO personInfo();
@Operation(summary = "查询用户系统变量信息")
@GetMapping("/personSysVariableInfo/{id}")
UserGridVO personSysVariableInfo(@PathVariable("id") Long id);
@Operation(summary = "查询客户端IP信息")
@GetMapping("/ipInfo")
CurIpVO ipInfo();
@ -61,6 +65,11 @@ public interface UserApi {
@PostMapping("/create")
void create(@RequestBody UserCreator creator);
@Operation(summary = "创建第三方用户")
@DePermit("m:read")
@PostMapping("/createPlatform")
void createPlatform(@RequestBody PlatformUserCreator creator);
@Operation(summary = "编辑")
@DePermit({"m:read", "#p0.id + ':manage'"})
@PostMapping("/edit")
@ -207,21 +216,27 @@ public interface UserApi {
List<Map<String, Object>> listUserInfosByIds(List<Long> ids);
@Operation(summary = "MFA二维码信息")
@GetMapping("/mfaQr")
MfaQrVO mfaQr();
@Operation(summary = "MFA绑定状态")
@GetMapping("/mfabound")
Boolean mfaBound();
@Operation(summary = "绑定MFA")
@PostMapping("/mfaBind")
void mfaBind(@RequestBody MfaLoginDTO dto);
@Operation(summary = "解绑MFA")
@PostMapping("/mfaUnbind/{code}")
String mfaUnbind(@PathVariable("code") String code);
@Operation(summary = "重置MFA绑定状态")
@PostMapping("/mfaRest/{id}")
void resetBind(@PathVariable("id") Long id);
@Hidden
@GetMapping("/lang")
String userLang();

View File

@ -0,0 +1,14 @@
package io.gisbi.api.permissions.user.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
@Schema(description = "第三方平台用户构造器")
@EqualsAndHashCode(callSuper = true)
@Data
public class PlatformUserCreator extends UserCreator implements Serializable {
@Schema(description = "用户来源")
private int origin;
}

View File

@ -6,6 +6,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.gisbi.api.permissions.variable.dto.SysVariableDto;
import io.gisbi.api.permissions.variable.dto.SysVariableValueDto;
import io.gisbi.auth.DeApiPath;
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;
@ -17,50 +18,53 @@ import java.util.List;
import static io.gisbi.constant.AuthResourceEnum.SYSTEM;
@Hidden
@Tag(name = "系统变量")
@ApiSupport(order = 881, author = "fit2cloud-someone")
@DeApiPath(value = "/sysVariable", rt = SYSTEM)
public interface SysVariablesApi {
@Operation(summary = "创建")
@Operation(summary = "创建变量")
@PostMapping("/create")
SysVariableDto create(@RequestBody SysVariableDto sysVariableDto);
@Operation(summary = "编辑")
@Operation(summary = "编辑变量")
@PostMapping("/edit")
SysVariableDto edit(@RequestBody SysVariableDto sysVariableDto);
@Operation(summary = "删除")
@Operation(summary = "删除变量")
@GetMapping("/delete/{id}")
void delete(@PathVariable("id") Long id);
@Operation(summary = "详细信息")
@Operation(summary = "变量详细信息")
@GetMapping("/detail/{id}")
SysVariableDto detail(@PathVariable("id") Long id);
@Operation(summary = "查询")
@Operation(summary = "系统变量列表")
@PostMapping("/query")
List<SysVariableDto> query(@RequestBody SysVariableDto sysVariableDto);
@Operation(summary = "创建")
@Operation(summary = "创建变量值")
@PostMapping("/value/create")
SysVariableValueDto createValue(@RequestBody SysVariableValueDto sysVariableDto);
@Operation(summary = "编辑")
@Operation(summary = "编辑变量值")
@PostMapping("/value/edit")
SysVariableValueDto editValue(@RequestBody SysVariableValueDto sysVariableDto);
@Operation(summary = "删除")
@Operation(summary = "删除变量值")
@GetMapping("/value/delete/{id}")
void deleteValue(@PathVariable("id") String id);
@Operation(summary = "查看变量值详细信息")
@GetMapping("/value/selected/{id}")
List<SysVariableValueDto> selectVariableValue(@PathVariable("id") Long id);
@Operation(summary = "系统变量值列表")
@PostMapping("/value/selected/{goPage}/{pageSize}")
IPage<SysVariableValueDto> selectPage(@PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize, @RequestBody SysVariableValueDto sysVariableValueDto);
@Operation(summary = "批量删除")
@Operation(summary = "批量删除变量值")
@PostMapping("/value/batchDel")
void batchDel(@RequestBody List<Long> ids);