Merge pull request #1818 from dataease/pr@dev@feat_xpack_api

feat: 增加xpack包内部分api
This commit is contained in:
fit2cloud-chenyw 2022-02-24 17:27:15 +08:00 committed by GitHub
commit 527f5daac2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 74 additions and 14 deletions

View File

@ -1,11 +1,15 @@
package io.dataease.config;
import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
import com.google.common.base.Function;
import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.*;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
import springfox.documentation.RequestHandler;
import springfox.documentation.builders.*;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.*;
@ -15,11 +19,14 @@ import springfox.documentation.spring.web.plugins.Docket;
import java.util.ArrayList;
import java.util.List;
@EnableOpenApi
@Configuration
@Import(BeanValidatorPluginsConfiguration.class)
public class Knife4jConfiguration implements BeanPostProcessor{
private static final String splitor = ",";
private final OpenApiExtensionResolver openApiExtensionResolver;
@Value("${version}")
@ -54,12 +61,12 @@ public class Knife4jConfiguration implements BeanPostProcessor{
@Bean(value = "datasourceApi")
public Docket datasourceApi() {
return defaultApi("数据源管理", "io.dataease.datasource");
return defaultApi("数据源管理", "io.dataease.controller.datasource");
}
@Bean(value = "sysApi")
public Docket sysApi() {
return defaultApi("系统管理", "io.dataease.controller.sys");
return defaultApi("系统管理", "io.dataease.controller.sys,io.dataease.plugins.server");
}
private ApiInfo apiInfo(){
@ -79,12 +86,12 @@ public class Knife4jConfiguration implements BeanPostProcessor{
List<SecurityContext> securityContexts = new ArrayList<>();
securityContexts.add(securityContext());
Docket docket=new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
.groupName(groupName)
.select()
.apis(RequestHandlerSelectors.basePackage(packageName))
/*.apis(RequestHandlerSelectors.basePackage(packageName))*/
.apis(basePackage(packageName))
.paths(PathSelectors.any())
.build()
.securityContexts(securityContexts).securitySchemes(securitySchemes)
@ -120,4 +127,25 @@ public class Knife4jConfiguration implements BeanPostProcessor{
return results;
}
public static Predicate<RequestHandler> basePackage(final String basePackage) {
return input -> declaringClass(input).transform(handlerPackage(basePackage)).or(true);
}
private static Function<Class<?>, Boolean> handlerPackage(final String basePackage) {
return input -> {
// 循环判断匹配
for (String strPackage : basePackage.split(splitor)) {
boolean isMatch = input.getPackage().getName().startsWith(strPackage);
if (isMatch) {
return true;
}
}
return false;
};
}
private static Optional<? extends Class<?>> declaringClass(RequestHandler input) {
return Optional.fromNullable(input.declaringClass());
}
}

View File

@ -44,7 +44,8 @@ public class IndexController {
case valid:
return "doc.html";
default:
return "nolic.html";
// return "nolic.html";
return "doc.html";
}
}

View File

@ -3,9 +3,12 @@ package io.dataease.controller.dataset;
import com.auth0.jwt.JWT;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.auth.annotation.DePermission;
import io.dataease.auth.filter.F2CLinkFilter;
import io.dataease.base.domain.DatasetTable;
import io.dataease.base.domain.DatasetTableField;
import io.dataease.commons.constants.DePermissionType;
import io.dataease.commons.constants.ResourceAuthLevel;
import io.dataease.commons.exception.DEException;
import io.dataease.controller.request.dataset.DataSetTableRequest;
import io.dataease.controller.request.dataset.MultFieldValuesRequest;
@ -106,6 +109,7 @@ public class DataSetTableFieldController {
dataSetTableFieldsService.batchEdit(list);
}
@DePermission(type = DePermissionType.DATASET, value = "tableId", level = ResourceAuthLevel.DATASET_LEVEL_MANAGE)
@ApiOperation("保存")
@PostMapping("save")
public DatasetTableField save(@RequestBody DatasetTableField datasetTableField) {

View File

@ -3,7 +3,10 @@ package io.dataease.controller.dataset;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.auth.annotation.DePermission;
import io.dataease.base.domain.DatasetTableTask;
import io.dataease.commons.constants.DePermissionType;
import io.dataease.commons.constants.ResourceAuthLevel;
import io.dataease.commons.utils.PageUtils;
import io.dataease.commons.utils.Pager;
import io.dataease.controller.request.dataset.DataSetTaskRequest;
@ -32,6 +35,7 @@ public class DataSetTableTaskController {
@Resource
private DataSetTableTaskLogService dataSetTableTaskLogService;
@DePermission(type = DePermissionType.DATASET, value = "datasetTableTask.tableId", level = ResourceAuthLevel.DATASET_LEVEL_MANAGE)
@ApiOperation("保存")
@PostMapping("save")
public DatasetTableTask save(@RequestBody DataSetTaskRequest dataSetTaskRequest) throws Exception {
@ -70,6 +74,7 @@ public class DataSetTableTaskController {
dataSetTableTaskService.updateDatasetTableTaskStatus(datasetTableTask);
}
@DePermission(type = DePermissionType.DATASET, value = "tableId", level = ResourceAuthLevel.DATASET_LEVEL_MANAGE)
@ApiOperation("执行任务")
@PostMapping("/execTask")
public void execTask(@RequestBody DatasetTableTask datasetTableTask) throws Exception{

View File

@ -3,7 +3,10 @@ package io.dataease.controller.dataset;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.auth.annotation.DePermission;
import io.dataease.base.domain.DatasetTableTaskLog;
import io.dataease.commons.constants.DePermissionType;
import io.dataease.commons.constants.ResourceAuthLevel;
import io.dataease.commons.utils.PageUtils;
import io.dataease.commons.utils.Pager;
import io.dataease.controller.sys.base.BaseGridRequest;
@ -28,6 +31,7 @@ public class DataSetTableTaskLogController {
@Resource
private DataSetTableTaskLogService dataSetTableTaskLogService;
@DePermission(type = DePermissionType.DATASET, value = "tableId", level = ResourceAuthLevel.DATASET_LEVEL_MANAGE)
@ApiOperation("保存")
@PostMapping("save")
public DatasetTableTaskLog save(@RequestBody DatasetTableTaskLog datasetTableTaskLog) {

View File

@ -18,10 +18,11 @@ import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.ArrayList;
import java.util.List;
@ApiIgnore
@RestController
@RequestMapping("plugin/dataset/columnPermissions")
public class ColumnPermissionsController {

View File

@ -15,10 +15,11 @@ import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.ArrayList;
import java.util.List;
@ApiIgnore
@RestController
@RequestMapping("plugin/dataset/rowPermissions")
public class RowPermissionsController {

View File

@ -30,7 +30,9 @@ import io.dataease.plugins.xpack.oidc.dto.SSOToken;
import io.dataease.plugins.xpack.oidc.dto.SSOUserInfo;
import io.dataease.plugins.xpack.oidc.service.OidcXpackService;
import io.dataease.service.sys.SysUserService;
import springfox.documentation.annotations.ApiIgnore;
@ApiIgnore
@RequestMapping("/sso")
@Controller
public class SSOServer {

View File

@ -19,7 +19,9 @@ import io.dataease.plugins.xpack.theme.dto.ThemeDto;
import io.dataease.plugins.xpack.theme.dto.ThemeItem;
import io.dataease.plugins.xpack.theme.dto.ThemeRequest;
import io.dataease.plugins.xpack.theme.service.ThemeXpackService;
import springfox.documentation.annotations.ApiIgnore;
@ApiIgnore
@RequestMapping("/plugin/theme")
@RestController
public class ThemeServer {

View File

@ -17,9 +17,10 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*;
import io.dataease.plugins.xpack.auth.service.AuthXpackService;
import springfox.documentation.annotations.ApiIgnore;
import java.util.*;
@ApiIgnore
@RequestMapping("/plugin/auth")
@RestController
public class XAuthServer {

View File

@ -95,15 +95,15 @@ public class XDeptServer {
}
@RequiresPermissions("dept:del")
@ApiIgnore
@ApiOperation("删除")
@PostMapping("/nodesByDeptId/{deptId}")
public List<XpackDeptTreeNode> nodesByDeptId(@PathVariable("deptId") Long deptId){
DeptXpackService deptService = SpringContextUtil.getBean(DeptXpackService.class);
return deptService.searchTree(deptId);
}
@RequiresPermissions("dept:edit")
@ApiOperation("移动")
@PostMapping("/move")
public void move(@RequestBody XpackMoveDept xpackMoveDept){

View File

@ -7,9 +7,11 @@ import io.dataease.plugins.xpack.display.service.DisplayXpackService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
import java.util.Map;
@ApiIgnore
@RequestMapping("/api/display")
@RestController
public class XDisplayServer {

View File

@ -23,13 +23,14 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
import java.util.concurrent.Future;
import javax.annotation.Resource;
@ApiIgnore
@RequestMapping("/plugin/task")
@RestController
public class XEmailTaskServer {

View File

@ -8,9 +8,10 @@ import io.dataease.plugins.xpack.ldap.dto.response.LdapInfo;
import io.dataease.plugins.xpack.ldap.service.LdapXpackService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
@ApiIgnore
@RequestMapping("/plugin/ldap")
@RestController
public class XLdapServer {

View File

@ -7,10 +7,12 @@ import io.dataease.plugins.xpack.oidc.service.OidcXpackService;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ApiIgnore
@RequestMapping("/plugin/oidc")
@RestController
public class XOidcServer {

View File

@ -5,10 +5,12 @@ import io.dataease.plugins.config.SpringContextUtil;
import io.dataease.plugins.xpack.ukey.dto.request.XpackUkeyDto;
import io.dataease.plugins.xpack.ukey.service.UkeyXpackService;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.ServletRequest;
import java.util.List;
@ApiIgnore
@RequestMapping("/plugin/ukey")
@RestController
public class XUserKeysServer {

View File

@ -12,7 +12,9 @@ import org.springframework.web.bind.annotation.RestController;
import io.dataease.plugins.config.SpringContextUtil;
import io.dataease.plugins.view.entity.PluginViewType;
import io.dataease.plugins.view.service.ViewPluginService;
import springfox.documentation.annotations.ApiIgnore;
@ApiIgnore
@RequestMapping("/plugin/view")
@RestController
public class PluginViewServer {

View File

@ -162,6 +162,7 @@ public class DatasourceService {
return extDataSourceMapper.query(gridExample);
}
@DeCleaner(DePermissionType.DATASOURCE)
public void deleteDatasource(String datasourceId) throws Exception {
DatasetTableExample example = new DatasetTableExample();
example.createCriteria().andDataSourceIdEqualTo(datasourceId);