From b33abd3196480620098810ec491bccb616a9e149 Mon Sep 17 00:00:00 2001 From: lijiahang Date: Thu, 17 Oct 2024 10:20:04 +0800 Subject: [PATCH] =?UTF-8?q?:zap:=20=E6=8B=86=E5=88=86=E6=A8=A1=E5=9D=97.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visor/framework/common/utils/IpUtils.java | 2 -- .../src/main/resources/application.yaml | 2 +- .../TerminalConnectLogController.java | 3 +- ...oller.java => TerminalSftpController.java} | 30 ++++++++-------- ...nvert.java => TerminalSftpLogConvert.java} | 8 ++--- ....java => TerminalSftpLogQueryRequest.java} | 4 +-- .../entity/vo/AuthorizedHostWrapperVO.java | 3 -- ...tSftpLogVO.java => TerminalSftpLogVO.java} | 4 +-- .../handler/TerminalCheckHandler.java | 2 +- .../transfer/TransferMessageDispatcher.java | 12 +++---- ...ager.java => TerminalTransferManager.java} | 4 +-- .../service/TerminalConnectLogService.java | 13 ++----- ...pService.java => TerminalSftpService.java} | 10 +++--- .../impl/AssetAuthorizedDataServiceImpl.java | 15 +++----- .../impl/TerminalConnectLogServiceImpl.java | 16 +++------ ...Impl.java => TerminalSftpServiceImpl.java} | 34 +++++++++---------- .../service/impl/SystemMenuServiceImpl.java | 2 +- .../impl/SystemMessageServiceImpl.java | 1 - .../impl/SystemRoleMenuServiceImpl.java | 2 +- .../service/impl/SystemRoleServiceImpl.java | 2 +- orion-visor-ui/src/api/asset/path-bookmark.ts | 2 +- .../asset/{host-sftp.ts => terminal-sftp.ts} | 22 ++++++------ .../src/store/modules/terminal/index.ts | 6 ++++ .../sftp-log/components/sftp-log-table.vue | 22 ++++++------ .../terminal/components/sftp/sftp-view.vue | 2 +- .../handler/sftp-transfer-downloader.ts | 2 +- sql/init-4-data.sql | 4 +-- 27 files changed, 103 insertions(+), 126 deletions(-) rename orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/{HostSftpLogController.java => TerminalSftpController.java} (79%) rename orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/convert/{HostSftpLogConvert.java => TerminalSftpLogConvert.java} (81%) rename orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/{HostSftpLogQueryRequest.java => TerminalSftpLogQueryRequest.java} (91%) rename orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/vo/{HostSftpLogVO.java => TerminalSftpLogVO.java} (93%) rename orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/manager/{HostTransferManager.java => TerminalTransferManager.java} (96%) rename orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/{HostSftpService.java => TerminalSftpService.java} (86%) rename orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/{HostSftpServiceImpl.java => TerminalSftpServiceImpl.java} (90%) rename orion-visor-ui/src/api/asset/{host-sftp.ts => terminal-sftp.ts} (67%) diff --git a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/utils/IpUtils.java b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/utils/IpUtils.java index f2c21ead..569d2f7d 100644 --- a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/utils/IpUtils.java +++ b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/utils/IpUtils.java @@ -17,8 +17,6 @@ package com.orion.visor.framework.common.utils; import com.orion.ext.location.Region; import com.orion.ext.location.region.LocationRegions; -import com.orion.lang.constant.StandardHttpHeader; -import com.orion.lang.utils.Strings; import com.orion.visor.framework.common.constant.Const; import com.orion.web.servlet.web.Servlets; diff --git a/orion-visor-launch/src/main/resources/application.yaml b/orion-visor-launch/src/main/resources/application.yaml index 32ce71be..21011943 100644 --- a/orion-visor-launch/src/main/resources/application.yaml +++ b/orion-visor-launch/src/main/resources/application.yaml @@ -250,7 +250,7 @@ orion: # 下面引用了 需要注意 field: ignore: - - password,beforePassword,newPassword,useNewPassword,publicKey,privateKey,token + - password,beforePassword,newPassword,useNewPassword,publicKey,privateKey,privateKeyPassword - metrics desensitize: storage: diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/TerminalConnectLogController.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/TerminalConnectLogController.java index af507f24..dd5f3c25 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/TerminalConnectLogController.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/TerminalConnectLogController.java @@ -38,6 +38,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; +import java.util.Set; /** * 终端连接日志 api @@ -83,7 +84,7 @@ public class TerminalConnectLogController { @IgnoreLog(IgnoreLogMode.RET) @PostMapping("/latest-connect") @Operation(summary = "查询用户最近连接的主机") - public List getLatestConnectHostId(@RequestBody TerminalConnectLogQueryRequest request) { + public Set getLatestConnectHostId(@RequestBody TerminalConnectLogQueryRequest request) { return terminalConnectLogService.getLatestConnectHostId(request); } diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/HostSftpLogController.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/TerminalSftpController.java similarity index 79% rename from orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/HostSftpLogController.java rename to orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/TerminalSftpController.java index 215a196d..b11772ff 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/HostSftpLogController.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/TerminalSftpController.java @@ -23,9 +23,9 @@ import com.orion.visor.framework.log.core.enums.IgnoreLogMode; import com.orion.visor.framework.web.core.annotation.IgnoreWrapper; import com.orion.visor.framework.web.core.annotation.RestWrapper; import com.orion.visor.module.asset.define.operator.TerminalOperatorType; -import com.orion.visor.module.asset.entity.request.host.HostSftpLogQueryRequest; -import com.orion.visor.module.asset.entity.vo.HostSftpLogVO; -import com.orion.visor.module.asset.service.HostSftpService; +import com.orion.visor.module.asset.entity.request.host.TerminalSftpLogQueryRequest; +import com.orion.visor.module.asset.entity.vo.TerminalSftpLogVO; +import com.orion.visor.module.asset.service.TerminalSftpService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -53,27 +53,27 @@ import java.util.List; @Validated @RestWrapper @RestController -@RequestMapping("/asset/host-sftp") -public class HostSftpLogController { +@RequestMapping("/asset/terminal-sftp") +public class TerminalSftpController { @Resource - private HostSftpService hostSftpService; + private TerminalSftpService terminalSftpService; @IgnoreLog(IgnoreLogMode.RET) @PostMapping("/query-log") @Operation(summary = "分页查询 SFTP 操作日志") - @PreAuthorize("@ss.hasAnyPermission('infra:operator-log:query', 'asset:host-sftp-log:management:query')") - public DataGrid getHostSftpLogPage(@Validated(Page.class) @RequestBody HostSftpLogQueryRequest request) { - return hostSftpService.getHostSftpLogPage(request); + @PreAuthorize("@ss.hasAnyPermission('infra:operator-log:query', 'asset:terminal-sftp-log:management:query')") + public DataGrid getTerminalSftpLogPage(@Validated(Page.class) @RequestBody TerminalSftpLogQueryRequest request) { + return terminalSftpService.getTerminalSftpLogPage(request); } @OperatorLog(TerminalOperatorType.DELETE_SFTP_LOG) @DeleteMapping("/delete-log") @Operation(summary = "删除 SFTP 操作日志") @Parameter(name = "idList", description = "idList", required = true) - @PreAuthorize("@ss.hasAnyPermission('infra:operator-log:delete', 'asset:host-sftp-log:management:delete')") - public Integer deleteHostSftpLog(@RequestParam("idList") List idList) { - return hostSftpService.deleteHostSftpLog(idList); + @PreAuthorize("@ss.hasAnyPermission('infra:operator-log:delete', 'asset:terminal-sftp-log:management:delete')") + public Integer deleteTerminalSftpLog(@RequestParam("idList") List idList) { + return terminalSftpService.deleteTerminalSftpLog(idList); } @IgnoreLog(IgnoreLogMode.RET) @@ -81,7 +81,7 @@ public class HostSftpLogController { @Operation(summary = "获取文件内容") @Parameter(name = "token", description = "token", required = true) public void getFileContentByToken(@RequestParam("token") String token, HttpServletResponse response) throws Exception { - hostSftpService.getFileContentByToken(token, response); + terminalSftpService.getFileContentByToken(token, response); } @PostMapping("/set-content") @@ -90,7 +90,7 @@ public class HostSftpLogController { @Parameter(name = "file", description = "file", required = true) public Boolean setFileContentByToken(@RequestParam("token") String token, @RequestParam("file") MultipartFile file) throws Exception { - hostSftpService.setFileContentByToken(token, file); + terminalSftpService.setFileContentByToken(token, file); return true; } @@ -104,7 +104,7 @@ public class HostSftpLogController { public StreamingResponseBody downloadWithTransferToken(@RequestParam("channelId") String channelId, @RequestParam("transferToken") String transferToken, HttpServletResponse response) { - return hostSftpService.downloadWithTransferToken(channelId, transferToken, response); + return terminalSftpService.downloadWithTransferToken(channelId, transferToken, response); } } diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/convert/HostSftpLogConvert.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/convert/TerminalSftpLogConvert.java similarity index 81% rename from orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/convert/HostSftpLogConvert.java rename to orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/convert/TerminalSftpLogConvert.java index baaa0e2c..edd84e31 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/convert/HostSftpLogConvert.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/convert/TerminalSftpLogConvert.java @@ -15,7 +15,7 @@ */ package com.orion.visor.module.asset.convert; -import com.orion.visor.module.asset.entity.vo.HostSftpLogVO; +import com.orion.visor.module.asset.entity.vo.TerminalSftpLogVO; import com.orion.visor.module.infra.entity.dto.operator.OperatorLogDTO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; @@ -29,11 +29,11 @@ import org.mapstruct.factory.Mappers; * @since 2023-12-26 22:09 */ @Mapper -public interface HostSftpLogConvert { +public interface TerminalSftpLogConvert { - HostSftpLogConvert MAPPER = Mappers.getMapper(HostSftpLogConvert.class); + TerminalSftpLogConvert MAPPER = Mappers.getMapper(TerminalSftpLogConvert.class); @Mapping(target = "extra", ignore = true) - HostSftpLogVO to(OperatorLogDTO request); + TerminalSftpLogVO to(OperatorLogDTO request); } diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostSftpLogQueryRequest.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/TerminalSftpLogQueryRequest.java similarity index 91% rename from orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostSftpLogQueryRequest.java rename to orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/TerminalSftpLogQueryRequest.java index 56ecd1fd..2f859901 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostSftpLogQueryRequest.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/TerminalSftpLogQueryRequest.java @@ -35,8 +35,8 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(callSuper = true) -@Schema(name = "HostSftpLogQueryRequest", description = "SFTP 操作日志 查询请求对象") -public class HostSftpLogQueryRequest extends PageRequest { +@Schema(name = "TerminalSftpLogQueryRequest", description = "SFTP 操作日志 查询请求对象") +public class TerminalSftpLogQueryRequest extends PageRequest { @Schema(description = "用户id") private Long userId; diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/vo/AuthorizedHostWrapperVO.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/vo/AuthorizedHostWrapperVO.java index 61ff2090..647de273 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/vo/AuthorizedHostWrapperVO.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/vo/AuthorizedHostWrapperVO.java @@ -48,7 +48,4 @@ public class AuthorizedHostWrapperVO { @Schema(description = "分组树节点映射 groupId:hostIdList") private Map> treeNodes; - @Schema(description = "最近访问的主机") - private Set latestHosts; - } diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/vo/HostSftpLogVO.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/vo/TerminalSftpLogVO.java similarity index 93% rename from orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/vo/HostSftpLogVO.java rename to orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/vo/TerminalSftpLogVO.java index e705f4b5..34223d95 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/vo/HostSftpLogVO.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/vo/TerminalSftpLogVO.java @@ -36,8 +36,8 @@ import java.util.Map; @Builder @NoArgsConstructor @AllArgsConstructor -@Schema(name = "HostSftpLogVO", description = "SFTP 操作日志 实体对象") -public class HostSftpLogVO implements Serializable { +@Schema(name = "TerminalSftpLogVO", description = "SFTP 操作日志 实体对象") +public class TerminalSftpLogVO implements Serializable { private static final long serialVersionUID = 1L; diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/terminal/handler/TerminalCheckHandler.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/terminal/handler/TerminalCheckHandler.java index daf674ba..ec614d45 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/terminal/handler/TerminalCheckHandler.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/terminal/handler/TerminalCheckHandler.java @@ -28,8 +28,8 @@ import com.orion.visor.framework.common.enums.BooleanBit; import com.orion.visor.framework.websocket.core.utils.WebSockets; import com.orion.visor.module.asset.dao.HostDAO; import com.orion.visor.module.asset.define.operator.TerminalOperatorType; -import com.orion.visor.module.asset.entity.domain.TerminalConnectLogDO; import com.orion.visor.module.asset.entity.domain.HostDO; +import com.orion.visor.module.asset.entity.domain.TerminalConnectLogDO; import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO; import com.orion.visor.module.asset.entity.request.host.TerminalConnectLogCreateRequest; import com.orion.visor.module.asset.enums.TerminalConnectStatusEnum; diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/TransferMessageDispatcher.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/TransferMessageDispatcher.java index f297a42c..e7653668 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/TransferMessageDispatcher.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/TransferMessageDispatcher.java @@ -19,7 +19,7 @@ import com.alibaba.fastjson.JSON; import com.orion.lang.utils.io.Streams; import com.orion.visor.module.asset.handler.host.transfer.handler.ITransferHandler; import com.orion.visor.module.asset.handler.host.transfer.handler.TransferHandler; -import com.orion.visor.module.asset.handler.host.transfer.manager.HostTransferManager; +import com.orion.visor.module.asset.handler.host.transfer.manager.TerminalTransferManager; import com.orion.visor.module.asset.handler.host.transfer.model.TransferOperatorRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -43,19 +43,19 @@ import javax.annotation.Resource; public class TransferMessageDispatcher extends AbstractWebSocketHandler { @Resource - private HostTransferManager hostTransferManager; + private TerminalTransferManager terminalTransferManager; @Override public void afterConnectionEstablished(WebSocketSession session) { log.info("TransferMessageHandler-afterConnectionEstablished id: {}", session.getId()); // 添加处理器 - hostTransferManager.putHandler(session.getId(), new TransferHandler(session)); + terminalTransferManager.putHandler(session.getId(), new TransferHandler(session)); } @Override protected void handleTextMessage(WebSocketSession session, TextMessage message) { // 获取处理器 - ITransferHandler handler = hostTransferManager.getHandler(session.getId()); + ITransferHandler handler = terminalTransferManager.getHandler(session.getId()); // 处理消息 handler.handleMessage(JSON.parseObject(message.getPayload(), TransferOperatorRequest.class)); } @@ -63,7 +63,7 @@ public class TransferMessageDispatcher extends AbstractWebSocketHandler { @Override protected void handleBinaryMessage(WebSocketSession session, BinaryMessage message) { // 获取处理器 - ITransferHandler handler = hostTransferManager.getHandler(session.getId()); + ITransferHandler handler = terminalTransferManager.getHandler(session.getId()); // 添加数据 handler.handleMessage(message.getPayload().array()); } @@ -78,7 +78,7 @@ public class TransferMessageDispatcher extends AbstractWebSocketHandler { String id = session.getId(); log.info("TransferMessageHandler-afterConnectionClosed id: {}, code: {}, reason: {}", id, status.getCode(), status.getReason()); // 关闭会话 - Streams.close(hostTransferManager.removeHandler(id)); + Streams.close(terminalTransferManager.removeHandler(id)); } } diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/manager/HostTransferManager.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/manager/TerminalTransferManager.java similarity index 96% rename from orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/manager/HostTransferManager.java rename to orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/manager/TerminalTransferManager.java index f0e3f612..8a4095d2 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/manager/HostTransferManager.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/manager/TerminalTransferManager.java @@ -21,14 +21,14 @@ import org.springframework.stereotype.Component; import java.util.concurrent.ConcurrentHashMap; /** - * 主机传输管理器 + * 终端传输管理器 * * @author Jiahang Li * @version 1.0.0 * @since 2024/6/4 17:58 */ @Component -public class HostTransferManager { +public class TerminalTransferManager { private final ConcurrentHashMap handlers = new ConcurrentHashMap<>(); diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/TerminalConnectLogService.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/TerminalConnectLogService.java index 1d942035..036ed51e 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/TerminalConnectLogService.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/TerminalConnectLogService.java @@ -27,7 +27,7 @@ import com.orion.visor.module.asset.enums.TerminalConnectTypeEnum; import java.util.List; import java.util.Map; -import java.util.concurrent.Future; +import java.util.Set; /** * 终端连接日志 服务类 @@ -79,16 +79,7 @@ public interface TerminalConnectLogService { * @param request request * @return hostId */ - List getLatestConnectHostId(TerminalConnectLogQueryRequest request); - - /** - * 查询用户最近连接的主机 - * - * @param type type - * @param userId userId - * @return hostId - */ - Future> getLatestConnectHostIdAsync(TerminalConnectTypeEnum type, Long userId); + Set getLatestConnectHostId(TerminalConnectLogQueryRequest request); /** * 删除终端连接日志 diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/HostSftpService.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/TerminalSftpService.java similarity index 86% rename from orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/HostSftpService.java rename to orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/TerminalSftpService.java index 82106002..54dff506 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/HostSftpService.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/TerminalSftpService.java @@ -16,8 +16,8 @@ package com.orion.visor.module.asset.service; import com.orion.lang.define.wrapper.DataGrid; -import com.orion.visor.module.asset.entity.request.host.HostSftpLogQueryRequest; -import com.orion.visor.module.asset.entity.vo.HostSftpLogVO; +import com.orion.visor.module.asset.entity.request.host.TerminalSftpLogQueryRequest; +import com.orion.visor.module.asset.entity.vo.TerminalSftpLogVO; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody; @@ -32,7 +32,7 @@ import java.util.List; * @version 1.0.0 * @since 2023-12-26 22:09 */ -public interface HostSftpService { +public interface TerminalSftpService { /** * 分页查询 SFTP 操作日志 @@ -40,7 +40,7 @@ public interface HostSftpService { * @param request request * @return rows */ - DataGrid getHostSftpLogPage(HostSftpLogQueryRequest request); + DataGrid getTerminalSftpLogPage(TerminalSftpLogQueryRequest request); /** * 删除 SFTP 操作日志 @@ -48,7 +48,7 @@ public interface HostSftpService { * @param idList idList * @return effect */ - Integer deleteHostSftpLog(List idList); + Integer deleteTerminalSftpLog(List idList); /** * 设置文件内容 diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/AssetAuthorizedDataServiceImpl.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/AssetAuthorizedDataServiceImpl.java index 3e596143..f36115f7 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/AssetAuthorizedDataServiceImpl.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/AssetAuthorizedDataServiceImpl.java @@ -18,7 +18,6 @@ package com.orion.visor.module.asset.service.impl; import com.orion.lang.function.Functions; import com.orion.lang.utils.collect.Lists; import com.orion.lang.utils.collect.Maps; -import com.orion.lang.utils.collect.Sets; import com.orion.visor.framework.common.constant.Const; import com.orion.visor.framework.common.utils.TreeUtils; import com.orion.visor.framework.common.utils.Valid; @@ -26,12 +25,14 @@ import com.orion.visor.module.asset.convert.HostGroupConvert; import com.orion.visor.module.asset.dao.HostDAO; import com.orion.visor.module.asset.entity.request.asset.AssetAuthorizedDataQueryRequest; import com.orion.visor.module.asset.entity.vo.*; -import com.orion.visor.module.asset.enums.TerminalConnectTypeEnum; import com.orion.visor.module.asset.enums.HostExtraItemEnum; import com.orion.visor.module.asset.enums.HostStatusEnum; import com.orion.visor.module.asset.enums.HostTypeEnum; import com.orion.visor.module.asset.handler.host.extra.model.HostLabelExtraModel; -import com.orion.visor.module.asset.service.*; +import com.orion.visor.module.asset.service.AssetAuthorizedDataService; +import com.orion.visor.module.asset.service.HostIdentityService; +import com.orion.visor.module.asset.service.HostKeyService; +import com.orion.visor.module.asset.service.HostService; import com.orion.visor.module.infra.api.*; import com.orion.visor.module.infra.entity.dto.data.DataGroupDTO; import com.orion.visor.module.infra.entity.dto.tag.TagDTO; @@ -78,9 +79,6 @@ public class AssetAuthorizedDataServiceImpl implements AssetAuthorizedDataServic @Resource private HostIdentityService hostIdentityService; - @Resource - private TerminalConnectLogService terminalConnectLogService; - @Resource private FavoriteApi favoriteApi; @@ -144,14 +142,11 @@ public class AssetAuthorizedDataServiceImpl implements AssetAuthorizedDataServic .groupTree(Lists.empty()) .treeNodes(Maps.empty()) .hostList(Lists.empty()) - .latestHosts(Sets.empty()) .build(); } AuthorizedHostWrapperVO wrapper = new AuthorizedHostWrapperVO(); // 查询我的收藏 Future> favoriteResult = favoriteApi.getFavoriteRelIdListAsync(FavoriteTypeEnum.HOST, userId); - // 查询最近连接的主机 - Future> latestConnectHostIdList = terminalConnectLogService.getLatestConnectHostIdAsync(TerminalConnectTypeEnum.of(type), userId); // 查询主机拓展信息 Future> labelExtraResult = dataExtraApi.getExtraItemValuesByCacheAsync(userId, DataExtraTypeEnum.HOST, @@ -172,8 +167,6 @@ public class AssetAuthorizedDataServiceImpl implements AssetAuthorizedDataServic this.getAuthorizedHostExtra(wrapper.getHostList(), favoriteResult.get(), labelExtraResult.get()); - // 设置最近连接的主机 - wrapper.setLatestHosts(new LinkedHashSet<>(latestConnectHostIdList.get())); return wrapper; } diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/TerminalConnectLogServiceImpl.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/TerminalConnectLogServiceImpl.java index fae98277..1c0f3f3c 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/TerminalConnectLogServiceImpl.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/TerminalConnectLogServiceImpl.java @@ -41,15 +41,12 @@ import com.orion.visor.module.asset.handler.host.terminal.model.TerminalConfig; import com.orion.visor.module.asset.handler.host.terminal.session.ITerminalSession; import com.orion.visor.module.asset.service.TerminalConnectLogService; import lombok.extern.slf4j.Slf4j; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.Future; import java.util.stream.Collectors; /** @@ -175,15 +172,10 @@ public class TerminalConnectLogServiceImpl implements TerminalConnectLogService } @Override - public List getLatestConnectHostId(TerminalConnectLogQueryRequest request) { - return terminalConnectLogDAO.selectLatestConnectHostId(SecurityUtils.getLoginUserId(), request.getType(), request.getLimit()); - } - - @Override - @Async("asyncExecutor") - public Future> getLatestConnectHostIdAsync(TerminalConnectTypeEnum type, Long userId) { - List hostIdList = terminalConnectLogDAO.selectLatestConnectHostId(userId, type.name(), Const.N_10); - return CompletableFuture.completedFuture(hostIdList); + public Set getLatestConnectHostId(TerminalConnectLogQueryRequest request) { + // 查询最近连接的主机 + List hostIdList = terminalConnectLogDAO.selectLatestConnectHostId(SecurityUtils.getLoginUserId(), request.getType(), request.getLimit()); + return new LinkedHashSet<>(hostIdList); } @Override diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/HostSftpServiceImpl.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/TerminalSftpServiceImpl.java similarity index 90% rename from orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/HostSftpServiceImpl.java rename to orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/TerminalSftpServiceImpl.java index 3b8d1943..abb4e612 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/HostSftpServiceImpl.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/TerminalSftpServiceImpl.java @@ -34,19 +34,19 @@ import com.orion.visor.framework.common.constant.ErrorMessage; import com.orion.visor.framework.common.constant.ExtraFieldConst; import com.orion.visor.framework.redis.core.utils.RedisStrings; import com.orion.visor.framework.security.core.utils.SecurityUtils; -import com.orion.visor.module.asset.convert.HostSftpLogConvert; +import com.orion.visor.module.asset.convert.TerminalSftpLogConvert; import com.orion.visor.module.asset.define.cache.TerminalCacheKeyDefine; import com.orion.visor.module.asset.define.operator.TerminalOperatorType; -import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO; import com.orion.visor.module.asset.entity.dto.SftpGetContentCacheDTO; import com.orion.visor.module.asset.entity.dto.SftpSetContentCacheDTO; -import com.orion.visor.module.asset.entity.request.host.HostSftpLogQueryRequest; -import com.orion.visor.module.asset.entity.vo.HostSftpLogVO; +import com.orion.visor.module.asset.entity.dto.TerminalConnectDTO; +import com.orion.visor.module.asset.entity.request.host.TerminalSftpLogQueryRequest; +import com.orion.visor.module.asset.entity.vo.TerminalSftpLogVO; import com.orion.visor.module.asset.handler.host.jsch.SessionStores; -import com.orion.visor.module.asset.handler.host.transfer.manager.HostTransferManager; +import com.orion.visor.module.asset.handler.host.transfer.manager.TerminalTransferManager; import com.orion.visor.module.asset.handler.host.transfer.session.DownloadSession; -import com.orion.visor.module.asset.service.HostSftpService; import com.orion.visor.module.asset.service.TerminalService; +import com.orion.visor.module.asset.service.TerminalSftpService; import com.orion.visor.module.infra.api.OperatorLogApi; import com.orion.visor.module.infra.entity.dto.operator.OperatorLogQueryDTO; import com.orion.web.servlet.web.Servlets; @@ -72,26 +72,26 @@ import java.util.Optional; */ @Slf4j @Service -public class HostSftpServiceImpl implements HostSftpService { +public class TerminalSftpServiceImpl implements TerminalSftpService { @Resource private OperatorLogApi operatorLogApi; - @Resource - private HostTransferManager hostTransferManager; - @Resource private TerminalService terminalService; + @Resource + private TerminalTransferManager terminalTransferManager; + @Override - public DataGrid getHostSftpLogPage(HostSftpLogQueryRequest request) { + public DataGrid getTerminalSftpLogPage(TerminalSftpLogQueryRequest request) { // 查询 OperatorLogQueryDTO query = this.buildQueryInfo(request); // 转换 return operatorLogApi.getOperatorLogPage(query) .map(s -> { JSONObject extra = JSON.parseObject(s.getExtra()); - HostSftpLogVO vo = HostSftpLogConvert.MAPPER.to(s); + TerminalSftpLogVO vo = TerminalSftpLogConvert.MAPPER.to(s); vo.setHostId(extra.getLong(ExtraFieldConst.HOST_ID)); vo.setHostName(extra.getString(ExtraFieldConst.HOST_NAME)); vo.setHostAddress(extra.getString(ExtraFieldConst.ADDRESS)); @@ -105,10 +105,10 @@ public class HostSftpServiceImpl implements HostSftpService { } @Override - public Integer deleteHostSftpLog(List idList) { - log.info("HostSftpLogService.deleteSftpLog start {}", JSON.toJSONString(idList)); + public Integer deleteTerminalSftpLog(List idList) { + log.info("TerminalSftpService.deleteSftpLog start {}", JSON.toJSONString(idList)); Integer effect = operatorLogApi.deleteOperatorLog(idList); - log.info("HostSftpLogService.deleteSftpLog finish {}", effect); + log.info("TerminalSftpService.deleteSftpLog finish {}", effect); // 设置日志参数 OperatorLogs.add(OperatorLogs.COUNT, effect); return effect; @@ -185,7 +185,7 @@ public class HostSftpServiceImpl implements HostSftpService { public StreamingResponseBody downloadWithTransferToken(String channelId, String transferToken, HttpServletResponse response) { // 获取会话 DownloadSession session = (DownloadSession) Optional.ofNullable(channelId) - .map(hostTransferManager::getHandler) + .map(terminalTransferManager::getHandler) .map(s -> s.getSessionByToken(transferToken)) .filter(s -> s instanceof DownloadSession) .orElse(null); @@ -206,7 +206,7 @@ public class HostSftpServiceImpl implements HostSftpService { * @param request request * @return query */ - private OperatorLogQueryDTO buildQueryInfo(HostSftpLogQueryRequest request) { + private OperatorLogQueryDTO buildQueryInfo(TerminalSftpLogQueryRequest request) { Long hostId = request.getHostId(); String type = request.getType(); // 构建参数 diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemMenuServiceImpl.java b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemMenuServiceImpl.java index 469bb840..f5654143 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemMenuServiceImpl.java +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemMenuServiceImpl.java @@ -36,8 +36,8 @@ import com.orion.visor.module.infra.entity.vo.SystemMenuVO; import com.orion.visor.module.infra.enums.MenuStatusEnum; import com.orion.visor.module.infra.enums.MenuTypeEnum; import com.orion.visor.module.infra.enums.MenuVisibleEnum; -import com.orion.visor.module.infra.service.UserPermissionService; import com.orion.visor.module.infra.service.SystemMenuService; +import com.orion.visor.module.infra.service.UserPermissionService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemMessageServiceImpl.java b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemMessageServiceImpl.java index 51d9b0a3..02c88f69 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemMessageServiceImpl.java +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemMessageServiceImpl.java @@ -19,7 +19,6 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.orion.lang.function.Functions; import com.orion.lang.utils.Booleans; -import com.orion.visor.framework.common.constant.Const; import com.orion.visor.framework.security.core.utils.SecurityUtils; import com.orion.visor.module.infra.convert.SystemMessageConvert; import com.orion.visor.module.infra.dao.SystemMessageDAO; diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemRoleMenuServiceImpl.java b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemRoleMenuServiceImpl.java index 9ab630e5..97c41178 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemRoleMenuServiceImpl.java +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemRoleMenuServiceImpl.java @@ -31,8 +31,8 @@ import com.orion.visor.module.infra.entity.domain.SystemRoleDO; import com.orion.visor.module.infra.entity.domain.SystemRoleMenuDO; import com.orion.visor.module.infra.entity.dto.SystemMenuCacheDTO; import com.orion.visor.module.infra.entity.request.menu.SystemRoleGrantMenuRequest; -import com.orion.visor.module.infra.service.UserPermissionService; import com.orion.visor.module.infra.service.SystemRoleMenuService; +import com.orion.visor.module.infra.service.UserPermissionService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemRoleServiceImpl.java b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemRoleServiceImpl.java index cea14485..6298677d 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemRoleServiceImpl.java +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemRoleServiceImpl.java @@ -35,9 +35,9 @@ import com.orion.visor.module.infra.entity.request.role.SystemRoleUpdateRequest; import com.orion.visor.module.infra.entity.vo.SystemRoleVO; import com.orion.visor.module.infra.enums.RoleStatusEnum; import com.orion.visor.module.infra.service.DataPermissionService; -import com.orion.visor.module.infra.service.UserPermissionService; import com.orion.visor.module.infra.service.SystemRoleService; import com.orion.visor.module.infra.service.SystemUserRoleService; +import com.orion.visor.module.infra.service.UserPermissionService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/orion-visor-ui/src/api/asset/path-bookmark.ts b/orion-visor-ui/src/api/asset/path-bookmark.ts index 136f5b10..37cb7636 100644 --- a/orion-visor-ui/src/api/asset/path-bookmark.ts +++ b/orion-visor-ui/src/api/asset/path-bookmark.ts @@ -1,4 +1,4 @@ -import { PathBookmarkGroupQueryResponse } from '@/api/asset/path-bookmark-group'; +import type { PathBookmarkGroupQueryResponse } from './path-bookmark-group'; import axios from 'axios'; /** diff --git a/orion-visor-ui/src/api/asset/host-sftp.ts b/orion-visor-ui/src/api/asset/terminal-sftp.ts similarity index 67% rename from orion-visor-ui/src/api/asset/host-sftp.ts rename to orion-visor-ui/src/api/asset/terminal-sftp.ts index ed0da178..cb5a6129 100644 --- a/orion-visor-ui/src/api/asset/host-sftp.ts +++ b/orion-visor-ui/src/api/asset/terminal-sftp.ts @@ -7,7 +7,7 @@ import qs from 'query-string'; /** * SFTP 操作日志 查询请求 */ -export interface HostSftpLogQueryRequest extends Pagination { +export interface TerminalSftpLogQueryRequest extends Pagination { userId?: number; hostId?: number; type?: string; @@ -18,7 +18,7 @@ export interface HostSftpLogQueryRequest extends Pagination { /** * SFTP 操作日志 查询响应 */ -export interface HostSftpLogQueryResponse extends TableData { +export interface TerminalSftpLogQueryResponse extends TableData { id: number; userId: number; username: number; @@ -32,13 +32,13 @@ export interface HostSftpLogQueryResponse extends TableData { type: string; result: string; startTime: number; - extra: HostSftpLogExtra; + extra: TerminalSftpLogExtra; } /** * SFTP 操作日志 拓展对象 */ -export interface HostSftpLogExtra { +export interface TerminalSftpLogExtra { mod: number; target: string; maxCount: number; @@ -47,15 +47,15 @@ export interface HostSftpLogExtra { /** * 分页查询 SFTP 操作日志 */ -export function getHostSftpLogPage(request: HostSftpLogQueryRequest) { - return axios.post>('/asset/host-sftp/query-log', request); +export function getTerminalSftpLogPage(request: TerminalSftpLogQueryRequest) { + return axios.post>('/asset/terminal-sftp/query-log', request); } /** * 删除 SFTP 操作日志 */ -export function deleteHostSftpLog(idList: Array) { - return axios.delete('/asset/host-sftp/delete-log', { +export function deleteTerminalSftpLog(idList: Array) { + return axios.delete('/asset/terminal-sftp/delete-log', { params: { idList }, paramsSerializer: params => { return qs.stringify(params, { arrayFormat: 'comma' }); @@ -67,7 +67,7 @@ export function deleteHostSftpLog(idList: Array) { * 获取 SFTP 文件内容 */ export function getSftpFileContent(token: string) { - return axios.get('/asset/host-sftp/get-content', { + return axios.get('/asset/terminal-sftp/get-content', { unwrap: true, params: { token }, timeout: 60000 @@ -81,7 +81,7 @@ export function setSftpFileContent(token: string, content: string) { const formData = new FormData(); formData.append('token', token); formData.append('file', new File([content], Date.now() + '', { type: 'text/plain' })); - return axios.post('/asset/host-sftp/set-content', formData, { + return axios.post('/asset/terminal-sftp/set-content', formData, { timeout: 60000, headers: { 'Content-Type': 'multipart/form-data' @@ -93,5 +93,5 @@ export function setSftpFileContent(token: string, content: string) { * 下载文件 */ export function getDownloadTransferUrl(channelId: string, transferToken: string) { - return `${httpBaseUrl}/asset/host-sftp/download?channelId=${channelId}&transferToken=${transferToken}`; + return `${httpBaseUrl}/asset/terminal-sftp/download?channelId=${channelId}&transferToken=${transferToken}`; } diff --git a/orion-visor-ui/src/store/modules/terminal/index.ts b/orion-visor-ui/src/store/modules/terminal/index.ts index e1f74df6..3a246bf8 100644 --- a/orion-visor-ui/src/store/modules/terminal/index.ts +++ b/orion-visor-ui/src/store/modules/terminal/index.ts @@ -16,6 +16,7 @@ import type { TerminalTheme, TerminalThemeSchema } from '@/api/asset/terminal'; import { getTerminalThemes } from '@/api/asset/terminal'; import { defineStore } from 'pinia'; import { getPreference, updatePreference } from '@/api/user/preference'; +import { getLatestConnectHostId } from '@/api/asset/terminal-connect-log'; import { nextId } from '@/utils'; import { Message } from '@arco-design/web-vue'; import { PanelSessionType, TerminalTabs } from '@/views/host/terminal/types/const'; @@ -128,10 +129,15 @@ export default defineStore('terminal', { if (this.hosts.hostList?.length) { return; } + // 查询授权主机 const { data } = await getCurrentAuthorizedHost('SSH'); Object.keys(data).forEach(k => { this.hosts[k as keyof AuthorizedHostQueryResponse] = data[k as keyof AuthorizedHostQueryResponse] as any; }); + this.hosts.latestHosts = []; + // 查询最近连接的主机 + const { data: latestHosts } = await getLatestConnectHostId('SSH', 30); + this.hosts.latestHosts = latestHosts; }, // 打开会话 diff --git a/orion-visor-ui/src/views/asset-audit/sftp-log/components/sftp-log-table.vue b/orion-visor-ui/src/views/asset-audit/sftp-log/components/sftp-log-table.vue index 07fc6a6a..09076199 100644 --- a/orion-visor-ui/src/views/asset-audit/sftp-log/components/sftp-log-table.vue +++ b/orion-visor-ui/src/views/asset-audit/sftp-log/components/sftp-log-table.vue @@ -61,7 +61,7 @@ position="br" type="warning" @ok="deleteSelectRows"> - @@ -164,7 +164,7 @@ position="left" type="warning" @ok="deleteRow(record)"> - @@ -184,9 +184,9 @@