+
+
+
+
+
+
+
record.id}/>
+
+ this.saveRole()}
+ onCancel={() => this.setState({modalForCreateRole: false})}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ this.updateRoleInfo()}
+ onCancel={() => this.setState({modalForUpdateRole: false})}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ this.savePermission()}
+ onCancel={() => this.setState({modalForPermission: false})}
+ >
+
+ this.onCheck(t)}
+ checkedKeys={this.state.selectPermissions}
+ treeData={this.state.permissionTree}
+ />
+
+
+
+ )
+ }
+}
\ No newline at end of file
diff --git a/admin/src/component/Auth/UserList/index.tsx b/admin/src/component/Auth/UserList/index.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..9a9c9ca2e6fb1e9a40158c52281bd8f8aef44c84
--- /dev/null
+++ b/admin/src/component/Auth/UserList/index.tsx
@@ -0,0 +1,221 @@
+import Search from "antd/es/input/Search";
+import {Button, Form, Input, message, Modal, Select, Space, Table} from "antd";
+import {CloudSyncOutlined, ReloadOutlined, DeleteOutlined, UserSwitchOutlined} from "@ant-design/icons";
+import {ColumnsType} from "antd/es/table";
+import User from "../../../api/Model/User";
+import React, {useEffect, useState} from "react";
+import {userList, createNewUser, removeUserApi} from "../../../api/User/UserApi";
+import UserCreate from "../../../component/App/User/UserCreate";
+import UserCreatedRequest from "../../../api/Model/Auth/UserCreatedRequest";
+import Role from "../../../api/Model/Auth/Role";
+import {roleList} from "../../../api/Auth/RoleApi";
+
+
+
+interface Props {
+
+}
+
+interface State {
+ users: Array,
+ modalOfCreateUser: boolean
+}
+
+export default class UserList extends React.Component {
+
+ private newUserInfo: UserCreatedRequest = {name: '', account: '', roleIds: []}
+
+ private roles: Array = []
+
+ private readonly columns:ColumnsType =[];
+
+ constructor(props: Props) {
+ super(props);
+ this.state = {
+ users: [],
+ modalOfCreateUser: false
+ }
+
+ this.columns = [
+ {
+ title: '用户ID',
+ dataIndex: 'id',
+ render: id => {id},
+ ellipsis: true,
+ width: 150,
+ },
+ {
+ title: '用户名',
+ dataIndex: 'account',
+ render: account => {account},
+ ellipsis: true,
+ width: 150,
+ },
+ {
+ title: '角色',
+ dataIndex: 'role',
+ render: role => ADMIN,
+ ellipsis: true,
+ width: 150,
+ },
+ {
+ title: '创建时间',
+ dataIndex: 'createdAt',
+ render: createdAt => {createdAt},
+ ellipsis: true,
+ width: 150,
+ },
+ {
+ title: '更新时间',
+ dataIndex: 'updatedAt',
+ render: updatedAt => {updatedAt},
+ ellipsis: true,
+ width: 150,
+ }, {
+ title: '操作',
+ dataIndex: 'address',
+ fixed: 'right',
+ width: 80,
+ render: (_, user: User) => {
+ return (
+
+
+
+
+ )
+ }
+
+ }
+ ]
+ }
+
+ componentDidMount() {
+ this.refresh(false);
+ this.loadRoles();
+ }
+
+ loadRoles = () => {
+ roleList(1, 100).then(resp => {
+ if (resp.code !== 0) {
+ message.error(`角色列表加载失败,${resp.msg}`).then();
+ return
+ }
+ this.roles = resp.data.results;
+ });
+ }
+
+ refresh = (fresh: boolean) => {
+ if (fresh) {
+ message.info("开始刷新用户列表中").then();
+ }
+ userList().then(resp => {
+ if (resp.code !== 0) {
+ message.error(`加载用户列表失败,${resp.msg}`).then();
+ return
+ }
+ this.setState({users: resp.data})
+ })
+ }
+
+ showCreateUserModal = () => {
+ this.setState({modalOfCreateUser: true})
+ }
+
+ hideCreateUserModal = () => {
+ this.setState({modalOfCreateUser: false})
+ }
+
+ createUser = () => {
+ let info = this.newUserInfo;
+ if (info.name === '' || info.account === '') {
+ message.error(`创建用户失败,用户信息不完整`).then();
+ return
+ }
+ createNewUser(info).then(resp => {
+ if (resp.code !== 0) {
+ message.error(`创建用户失败,${resp.msg}`).then();
+ return
+ }
+ this.refresh(false)
+ message.info(`创建用户成功`).then();
+ this.hideCreateUserModal()
+ })
+ }
+
+ createUserInfoChange = (_: any, value: UserCreatedRequest) => {
+ this.newUserInfo = value
+ console.log(this.newUserInfo)
+ }
+
+ removeUser = (user: User) => {
+ removeUserApi(user.id).then(resp => {
+ if (resp.code !== 0) {
+ message.error(`删除用户失败,${resp.msg}`).then();
+ return
+ }
+ message.info('删除用户完成').then();
+ this.refresh(true);
+ });
+ }
+
+ render() {
+ return (
+
+
+
+
+
+
+
+
+
record.id}/>
+
+ this.createUser()}
+ onCancel={() => this.hideCreateUserModal()}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
\ No newline at end of file
diff --git a/admin/src/component/Main/MainSideMenu/index.tsx b/admin/src/component/Main/MainSideMenu/index.tsx
index 0d7675edbd350d9fcf26eb8921b8495b2b02e8c5..f28e420cb6a08de5a780b3c33155d2d28134dedc 100644
--- a/admin/src/component/Main/MainSideMenu/index.tsx
+++ b/admin/src/component/Main/MainSideMenu/index.tsx
@@ -28,7 +28,7 @@ const items = [
{label: '网络管理', key: 'network', icon: },
{label: '监控设置', key: 'monitor', icon: },
{label: '系统设置', key: 'setting', icon: },
- {label: '账户管理', key: 'user', icon: },
+ {label: '授权管理', key: 'auth', icon: },
{label: '关于界面', key: 'about', icon: },
];
diff --git a/admin/src/page/AuthPage/index.tsx b/admin/src/page/AuthPage/index.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..296bbbd02efcd6fb0520a6a7c3beb81112e0e5dc
--- /dev/null
+++ b/admin/src/page/AuthPage/index.tsx
@@ -0,0 +1,44 @@
+import React from "react";
+import {Tabs} from "antd";
+import UserList from "../../component/Auth/UserList";
+import RoleList from "../../component/Auth/RoleList";
+import PermissionList from "../../component/Auth/PermissionList";
+import IconFont from "../../component/Base/IconFont";
+
+interface Props {
+
+}
+
+interface State {
+
+}
+
+
+const {TabPane} = Tabs;
+export default class AuthPage extends React.Component {
+ constructor(props: Props) {
+ super(props);
+ }
+
+ createTab = (icon: string, text: string): React.ReactNode => {
+ return {text}
+ }
+
+ render() {
+ return (
+
+ )
+ }
+}
diff --git a/admin/src/page/HomePage/index.tsx b/admin/src/page/HomePage/index.tsx
index e9faf5cd01a7be19b3d4b9457a96772fa90104ba..e6dd3b685ed839834e54a16987e1fd10073b1574 100644
--- a/admin/src/page/HomePage/index.tsx
+++ b/admin/src/page/HomePage/index.tsx
@@ -19,7 +19,7 @@ class HomePage extends React.Component {
constructor(props: HomePageProps) {
super(props);
this.state = {
- dockerServiceInfo: {version: null, info: null}
+ dockerServiceInfo: {}
}
}
@@ -29,6 +29,11 @@ class HomePage extends React.Component {
})
}
+ componentWillReceiveProps(nextProps:HomePageProps){
+ console.log(nextProps)
+ this.setState(nextProps)
+ }
+
render() {
return (
diff --git a/admin/src/page/UserPage/index.tsx b/admin/src/page/UserPage/index.tsx
deleted file mode 100644
index e31df10e768d3228ae52a42b86995ac36e8ba1c6..0000000000000000000000000000000000000000
--- a/admin/src/page/UserPage/index.tsx
+++ /dev/null
@@ -1,111 +0,0 @@
-import Search from "antd/es/input/Search";
-import {Button, message, Modal, Space, Table} from "antd";
-import {CloudSyncOutlined, ReloadOutlined} from "@ant-design/icons";
-import {ColumnsType} from "antd/es/table";
-import User from "../../api/Model/User";
-import {useEffect, useState} from "react";
-import {userList} from "../../api/User/UserApi";
-import UserCreate from "../../component/App/User/UserCreate";
-
-const columns: ColumnsType = [
- {
- title: '用户ID',
- dataIndex: 'id',
- render: id => {id},
- ellipsis: true,
- width: 150,
- },
- {
- title: '用户名',
- dataIndex: 'username',
- render: username => {username},
- ellipsis: true,
- width: 150,
- },
- {
- title: '角色',
- dataIndex: 'role',
- render: role => ADMIN,
- ellipsis: true,
- width: 150,
- },
- {
- title: '创建时间',
- dataIndex: 'createdAt',
- render: createdAt => {createdAt},
- ellipsis: true,
- width: 150,
- },
- {
- title: '更新时间',
- dataIndex: 'updatedAt',
- render: updatedAt => {updatedAt},
- ellipsis: true,
- width: 150,
- }, {
- title: '操作',
- dataIndex: 'address',
- fixed: 'right',
- width: 180,
- render: (_, user: User) => {
- return (
-
-
-
-
-
-
- )
- }
-
- }
-]
-
-function UserPage() {
-
- let [users, setUsers] = useState>([])
-
- let [createUserState, setCreateUserState] = useState(false)
- useEffect(() => refresh(false), [])
-
- let refresh = (fresh: boolean) => {
- if (fresh) {
- message.info("开始刷新用户列表中").then();
- }
- userList().then(resp => {
- setUsers(resp.data)
- })
- }
-
-
- let createUser = () => {
- setCreateUserState(true)
-
- }
- return (
-
-
-
-
-
-
-
-
-
record.id}/>
-
- setCreateUserState(false)}
- onCancel={() => setCreateUserState(false)}>
-
-
-
- )
-}
-
-export default UserPage;
\ No newline at end of file
diff --git a/admin/src/router/MainPageRouter.tsx b/admin/src/router/MainPageRouter.tsx
index 5b6a5eae8ba44c5f96d087916208de0115ef3c7b..010107ef58666ecf8bdfc48c95f3dfb5a3c96117 100644
--- a/admin/src/router/MainPageRouter.tsx
+++ b/admin/src/router/MainPageRouter.tsx
@@ -6,10 +6,11 @@ import NetworkPage from "../page/NetworkPage";
import HomePage from "../page/HomePage";
import MonitorPage from "../page/MonitorPage";
import SettingPage from "../page/SettingPage";
-import UserPage from "../page/UserPage";
+import UserPage from "../page/AuthPage";
import AboutPage from "../page/AboutPage";
import CreateContainerPage from "../page/CreateContainerPage";
import ContainerLogPage from "../page/ContainerLogPage";
+import AuthPage from "../page/AuthPage";
export const appRouter: Array = [
@@ -54,8 +55,8 @@ export const appRouter: Array = [
exact: true
},
{
- path: '/app/user',
- component: ,
+ path: '/app/auth',
+ component: ,
exact: true
},
{
diff --git a/admin/src/router/TerminalPageRouter.tsx b/admin/src/router/TerminalPageRouter.tsx
index a222843ab6f29a24523896c9e1b1dd841d3fccc2..d2bf53a2b46ef9abbe2870eaabcb51a50fc8d761 100644
--- a/admin/src/router/TerminalPageRouter.tsx
+++ b/admin/src/router/TerminalPageRouter.tsx
@@ -6,7 +6,7 @@ import NetworkPage from "../page/NetworkPage";
import HomePage from "../page/HomePage";
import MonitorPage from "../page/MonitorPage";
import SettingPage from "../page/SettingPage";
-import UserPage from "../page/UserPage";
+import UserPage from "../page/AuthPage";
import AboutPage from "../page/AboutPage";
import CreateContainerPage from "../page/CreateContainerPage";
import ContainerLogPage from "../page/ContainerLogPage";
diff --git a/backend-src/src/main/java/com/taoes/simpledocker/config/CommandExceptionHandler.java b/backend-src/src/main/java/com/taoes/simpledocker/config/CommandExceptionHandler.java
index 0f977d4dc18d90f02a32a9463707b33cc4d048ec..fadc6049c57f07697fb7e2c58c40824e5a935664 100644
--- a/backend-src/src/main/java/com/taoes/simpledocker/config/CommandExceptionHandler.java
+++ b/backend-src/src/main/java/com/taoes/simpledocker/config/CommandExceptionHandler.java
@@ -1,20 +1,24 @@
package com.taoes.simpledocker.config;
+import cn.dev33.satoken.exception.NotLoginException;
import cn.dev33.satoken.exception.NotPermissionException;
import cn.dev33.satoken.exception.SaTokenException;
import com.taoes.simpledocker.model.ResponseModel;
+import com.taoes.simpledocker.model.enums.ErrorCode;
+import com.taoes.simpledocker.model.exception.ParamCheckException;
import javax.ws.rs.ProcessingException;
import com.taoes.simpledocker.model.enums.PermissionEnum;
import org.springframework.http.HttpEntity;
+import org.springframework.validation.BindException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
/**
* 统一异常处理器
*
- * @author 枕上江南 zhoutao925638@vip.qq.com
+ * @author 枕上江南 zhoutao825638@vip.qq.com
* @date 2021/12/4 11:49 下午
*/
@ControllerAdvice
@@ -24,15 +28,37 @@ public class CommandExceptionHandler {
public HttpEntity> corsFilter(RuntimeException e) {
if (e instanceof ProcessingException) {
String msg = "Docker服务连接异常";
- return new HttpEntity<>(ResponseModel.fail(msg).setCode(400));
+ return new HttpEntity<>(ResponseModel.fail(msg).setErrorCode(ErrorCode.DOCKER_ENDPOINT_CONNECT_ERROR));
}
- return new HttpEntity<>(ResponseModel.fail(e.getMessage()).setCode(400));
+ return new HttpEntity<>(ResponseModel.fail(e.getMessage()).setErrorCode(ErrorCode.SYSTEM_ERROR));
}
+ @ExceptionHandler(BindException.class)
+ public HttpEntity> handleBindException(BindException e){
+ // TODO 待优化异常提示文案
+ return new HttpEntity<>(ResponseModel.fail(e.getMessage()).setErrorCode(ErrorCode.PARAM_ERROR));
+ }
+
+ /**
+ * 未登录异常
+ */
+ @ExceptionHandler(NotLoginException.class)
+ public HttpEntity> handleNotLoginException(NotLoginException e){
+ return new HttpEntity<>(ResponseModel.fail("未登录系统").setErrorCode(ErrorCode.NOT_LOGIN));
+ }
+
+ /**
+ * 无权限异常
+ */
@ExceptionHandler(NotPermissionException.class)
public HttpEntity> saPermissionFilter(NotPermissionException e) {
PermissionEnum permissionEnum = PermissionEnum.getPermissionEnum(e.getPermission());
- return new HttpEntity<>(ResponseModel.fail("无" + permissionEnum.getDesc() + "权限").setCode(400));
+ return new HttpEntity<>(ResponseModel.fail("无" + permissionEnum.getDesc() + "权限").setErrorCode(ErrorCode.PERMISSION_NOT_FOUND));
+ }
+
+ @ExceptionHandler(ParamCheckException.class)
+ public HttpEntity> paramCheckException(ParamCheckException e){
+ return new HttpEntity<>(ResponseModel.fail(e.getMessage()).setCode(403));
}
}
diff --git a/backend-src/src/main/java/com/taoes/simpledocker/config/DockerClientFactory.java b/backend-src/src/main/java/com/taoes/simpledocker/config/DockerClientFactory.java
index 68efbdc3ef5d6dffef3a36c2582cdf964cfb6374..0441f0974eeea58d4c5ef74bb51bf76c8574f1c6 100644
--- a/backend-src/src/main/java/com/taoes/simpledocker/config/DockerClientFactory.java
+++ b/backend-src/src/main/java/com/taoes/simpledocker/config/DockerClientFactory.java
@@ -27,7 +27,7 @@ import org.springframework.util.StringUtils;
/**
* TODO: please input file info
*
- * @author 枕上江南 zhoutao925638@vip.qq.com
+ * @author 枕上江南 zhoutao825638@vip.qq.com
* @date 2021/12/5 12:09 上午
*/
@Slf4j
diff --git a/backend-src/src/main/java/com/taoes/simpledocker/config/DockerClientInterception.java b/backend-src/src/main/java/com/taoes/simpledocker/config/DockerClientInterception.java
index 8d03ae26dcc43aeb5858686b049668c03c23db36..8504e08ae12367911ea7e43356aab15486f267d9 100644
--- a/backend-src/src/main/java/com/taoes/simpledocker/config/DockerClientInterception.java
+++ b/backend-src/src/main/java/com/taoes/simpledocker/config/DockerClientInterception.java
@@ -9,7 +9,7 @@ import org.springframework.web.servlet.ModelAndView;
/**
* TODO: please input file info
*
- * @author 枕上江南 zhoutao925638@vip.qq.com
+ * @author 枕上江南 zhoutao825638@vip.qq.com
* @date 2021/12/5 12:53 上午
*/
diff --git a/backend-src/src/main/java/com/taoes/simpledocker/config/GoServiceCommand.java b/backend-src/src/main/java/com/taoes/simpledocker/config/GoServiceCommand.java
index 3132af7554d462484f3bc7607b01d29df3652a6a..809f6d87659e0d32dfbb49b02c4fbecf529efa18 100644
--- a/backend-src/src/main/java/com/taoes/simpledocker/config/GoServiceCommand.java
+++ b/backend-src/src/main/java/com/taoes/simpledocker/config/GoServiceCommand.java
@@ -24,7 +24,7 @@ import org.springframework.util.StringUtils;
/**
* TODO: please input file info
*
- * @author 枕上江南 zhoutao925638@vip.qq.com
+ * @author 枕上江南 zhoutao825638@vip.qq.com
* @date 2021/12/5 12:09 上午
*/
@Slf4j
diff --git a/backend-src/src/main/java/com/taoes/simpledocker/config/SpringConfig.java b/backend-src/src/main/java/com/taoes/simpledocker/config/SpringConfig.java
index 7dd11e14bd4fe7de4adb2f737926fedce21e87fa..43ab44531f2ee5cfe3a0aad4057f6099c5239b1e 100644
--- a/backend-src/src/main/java/com/taoes/simpledocker/config/SpringConfig.java
+++ b/backend-src/src/main/java/com/taoes/simpledocker/config/SpringConfig.java
@@ -8,7 +8,7 @@ import org.springframework.stereotype.Component;
/**
* TODO: please input file info
*
- * @author 枕上江南 zhoutao925638@vip.qq.com
+ * @author 枕上江南 zhoutao825638@vip.qq.com
* @date 2021/12/4 11:49 下午
*/
@Component
diff --git a/backend-src/src/main/java/com/taoes/simpledocker/config/SpringInterception.java b/backend-src/src/main/java/com/taoes/simpledocker/config/SpringInterception.java
index 93f346a58dfa041be7ea66d9e0f2689018844675..cba3d3dc4be24c8f77d5db2109f490798fcdadb4 100644
--- a/backend-src/src/main/java/com/taoes/simpledocker/config/SpringInterception.java
+++ b/backend-src/src/main/java/com/taoes/simpledocker/config/SpringInterception.java
@@ -10,7 +10,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* TODO: please input file info
*
- * @author 枕上江南 zhoutao925638@vip.qq.com
+ * @author 枕上江南 zhoutao825638@vip.qq.com
* @date 2021/12/4 11:49 下午
*/
diff --git a/backend-src/src/main/java/com/taoes/simpledocker/config/WebSocketConfig.java b/backend-src/src/main/java/com/taoes/simpledocker/config/WebSocketConfig.java
index 447f0147302546ba4800704f9e6079635a3b4ca0..7807a9de7e620f2bce84c4e05678ab07169de70c 100644
--- a/backend-src/src/main/java/com/taoes/simpledocker/config/WebSocketConfig.java
+++ b/backend-src/src/main/java/com/taoes/simpledocker/config/WebSocketConfig.java
@@ -7,7 +7,7 @@ import org.springframework.web.socket.server.standard.ServerEndpointExporter;
/**
* TODO: please input file info
*
- * @author 枕上江南 zhoutao925638@vip.qq.com
+ * @author 枕上江南 zhoutao825638@vip.qq.com
* @date 2021/12/5 1:49 上午
*/
@Component
diff --git a/backend-src/src/main/java/com/taoes/simpledocker/config/interceptor/UserLoginInterceptor.java b/backend-src/src/main/java/com/taoes/simpledocker/config/interceptor/UserLoginInterceptor.java
index 34152cbfbe19b49889d6a80d4cbe5154f99274a4..5a782ee87f36a76faaa3c27af892b0784e0a1fd3 100644
--- a/backend-src/src/main/java/com/taoes/simpledocker/config/interceptor/UserLoginInterceptor.java
+++ b/backend-src/src/main/java/com/taoes/simpledocker/config/interceptor/UserLoginInterceptor.java
@@ -16,7 +16,7 @@ public class UserLoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- log.info("url={}",request.getRequestURL().toString());
+ log.info("url={}", request.getRequestURL().toString());
StpUtil.checkLogin();
return HandlerInterceptor.super.preHandle(request, response, handler);
}
diff --git a/backend-src/src/main/java/com/taoes/simpledocker/controller/AuthController.java b/backend-src/src/main/java/com/taoes/simpledocker/controller/AuthController.java
index 812e44c065d78948655034a0acc7f009086f8fe6..b40d9922595413879c22dc5a30798fcf4b0a76e4 100644
--- a/backend-src/src/main/java/com/taoes/simpledocker/controller/AuthController.java
+++ b/backend-src/src/main/java/com/taoes/simpledocker/controller/AuthController.java
@@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RestController;
/**
* TODO: please input file info
*
- * @author 枕上江南 zhoutao925638@vip.qq.com
+ * @author 枕上江南 zhoutao825638@vip.qq.com
* @date 2021/12/4 11:35 下午
*/
@Api(tags = "认证")
diff --git a/backend-src/src/main/java/com/taoes/simpledocker/controller/ClientController.java b/backend-src/src/main/java/com/taoes/simpledocker/controller/ClientController.java
index 0f76e427e66810ad9d5ef1786f75b62b521f83fe..45acd0ebbd85978ab1fd8b5c784eb5f4e74eb27a 100644
--- a/backend-src/src/main/java/com/taoes/simpledocker/controller/ClientController.java
+++ b/backend-src/src/main/java/com/taoes/simpledocker/controller/ClientController.java
@@ -3,6 +3,8 @@ package com.taoes.simpledocker.controller;
import com.taoes.simpledocker.model.DockerEndpoint;
import com.taoes.simpledocker.model.ResponseModel;
import com.taoes.simpledocker.service.DockerEndpointService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
@@ -12,9 +14,10 @@ import org.springframework.web.bind.annotation.RestController;
/**
* TODO: please input file info
*
- * @author 枕上江南 zhoutao925638@vip.qq.com
+ * @author 枕上江南 zhoutao825638@vip.qq.com
* @date 2021/12/4 11:35 下午
*/
+@Api(tags = "Docker客户端")
@RestController
@RequestMapping("/api/endpoint")
@RequiredArgsConstructor
@@ -22,6 +25,7 @@ public class ClientController {
private final DockerEndpointService dockerEndpointService;
+ @ApiOperation("Docker端列表")
@GetMapping
public ResponseModel> list() {
return ResponseModel.ok(dockerEndpointService.list());
diff --git a/backend-src/src/main/java/com/taoes/simpledocker/controller/ConfigController.java b/backend-src/src/main/java/com/taoes/simpledocker/controller/ConfigController.java
index 75656ad1a412c2df039ee796d4ba99a3d733ac0b..988866ad4a61ea8ffa0a4d5b538ad98389cf375d 100644
--- a/backend-src/src/main/java/com/taoes/simpledocker/controller/ConfigController.java
+++ b/backend-src/src/main/java/com/taoes/simpledocker/controller/ConfigController.java
@@ -1,8 +1,12 @@
package com.taoes.simpledocker.controller;
+import cn.dev33.satoken.annotation.SaCheckPermission;
import com.taoes.simpledocker.controller.client.DockerClientConfig;
import com.taoes.simpledocker.model.ResponseModel;
+import com.taoes.simpledocker.model.Role;
import com.taoes.simpledocker.service.ConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -16,9 +20,10 @@ import java.util.Map;
/**
* TODO: please input file info
*
- * @author 枕上江南 zhoutao925638@vip.qq.com
+ * @author 枕上江南 zhoutao825638@vip.qq.com
* @date 2021/12/4 11:35 下午
*/
+@Api(tags = "系统配置")
@RestController
@RequestMapping("/api/config")
public class ConfigController {
@@ -26,11 +31,14 @@ public class ConfigController {
@Autowired
private ConfigService configService;
+
@PostMapping("/client")
public ResponseModel> clientList() {
return new ResponseModel<>();
}
+ @SaCheckPermission(value = "config:system", orRole = Role.ADMIN_ROLE_NAME)
+ @ApiOperation("获取系统配置")
@GetMapping("/system")
public ResponseModel