From 8cc63fc0efccffb0078200dafdbbe996cfccf56c Mon Sep 17 00:00:00 2001 From: alex Date: Sun, 22 Oct 2023 15:49:21 +0200 Subject: [PATCH] scanner --- modules/requestclient/requestclient.go | 14 +++++++---- modules/utils/globals.go | 32 ++++++++++++++------------ socketclients/socketclients.go | 8 +++++++ socketserver/hub.go | 5 ++++ 4 files changed, 39 insertions(+), 20 deletions(-) diff --git a/modules/requestclient/requestclient.go b/modules/requestclient/requestclient.go index fcfbedd..5d549aa 100644 --- a/modules/requestclient/requestclient.go +++ b/modules/requestclient/requestclient.go @@ -31,18 +31,22 @@ func InvexApiRequestClient(requestMethod string, url string) (statusCode int, bo if code == 401 { log.Error().Msgf("invex not authorized, code: %d", code) - logger.AddSystemLog(rslogger.LogTypeInfo, "InvexApiRequestClient err: %s statusCode: %s", + logger.AddSystemLog(rslogger.LogTypeError, "InvexApiRequestClient err: %s statusCode: %s", "invex not authorized", strconv.Itoa(code)) return code, nil, err - } - - if code == 404 { + } else if code == 404 { log.Error().Msgf("Invex stock item not found, code: %d", code) - logger.AddSystemLog(rslogger.LogTypeInfo, "InvexApiRequestClient err: %s statusCode: %s", + logger.AddSystemLog(rslogger.LogTypeWarning, "InvexApiRequestClient err: %s statusCode: %s", "invex stock item not found", strconv.Itoa(code)) + return code, nil, err + } else if code != 200 { + log.Error().Msgf("InvexApiRequestClient request failed, statusCode: %s", strconv.Itoa(code)) + + logger.AddSystemLog(rslogger.LogTypeError, "InvexApiRequestClient request failed, statusCode: %s", strconv.Itoa(code)) + return code, nil, err } diff --git a/modules/utils/globals.go b/modules/utils/globals.go index 9f5d54c..45ec18b 100644 --- a/modules/utils/globals.go +++ b/modules/utils/globals.go @@ -61,6 +61,7 @@ const ( SentCmdGroupTasksReloaded = 8 SentCmdUpdateUserSessions = 9 SentCmdUpdateAllUsersUserAvatar = 10 + SentCmdScannerNewScan = 11 SentCmdTaskLocked = 16 SentCmdTaskUnlocked = 17 @@ -96,21 +97,22 @@ const ( // commands received from web clients const ( - ReceivedCmdStartGroupTasks = 1 - ReceivedCmdTaskFailedTryAgainRunTaskStep = 2 - ReceivedCmdTaskContinueTaskStep = 3 - ReceivedCmdReloadGroupTasks = 4 - ReceivedCmdTaskLocking = 5 - ReceivedCmdUpdateUserProfile = 6 - ReceivedCmdAdminAreaCreateNewRole = 7 - ReceivedCmdAdminAreaUpdateRole = 8 - ReceivedCmdAdminAreaUpdateRoleSortingOrder = 9 - ReceivedCmdAdminAreaDeleteRole = 10 - ReceivedCmdAllUsersUpdateUserRole = 11 - ReceivedCmdAllUsersCreateNewUser = 12 - ReceivedCmdAllUsersDeleteUser = 13 - ReceivedCmdAllUsersUserDeactivation = 14 - ReceivedCmdScannerNewScan = 15 + ReceivedCmdStartGroupTasks = 1 + ReceivedCmdTaskFailedTryAgainRunTaskStep = 2 + ReceivedCmdTaskContinueTaskStep = 3 + ReceivedCmdReloadGroupTasks = 4 + ReceivedCmdTaskLocking = 5 + ReceivedCmdUpdateUserProfile = 6 + ReceivedCmdAdminAreaCreateNewRole = 7 + ReceivedCmdAdminAreaUpdateRole = 8 + ReceivedCmdAdminAreaUpdateRoleSortingOrder = 9 + ReceivedCmdAdminAreaDeleteRole = 10 + ReceivedCmdAllUsersUpdateUserRole = 11 + ReceivedCmdAllUsersCreateNewUser = 12 + ReceivedCmdAllUsersDeleteUser = 13 + ReceivedCmdAllUsersUserDeactivation = 14 + ReceivedCmdScannerNewScan = 15 + ReceivedCmdHandleUserActionTaskStep = 18 ReceivedCmdCreateNewUserApiKey = 19 ReceivedCmdDeleteUserApiKey = 20 diff --git a/socketclients/socketclients.go b/socketclients/socketclients.go index d331d1a..2d812ec 100644 --- a/socketclients/socketclients.go +++ b/socketclients/socketclients.go @@ -167,6 +167,14 @@ func SendMessageToUsersByRoleId(roleId string, sendSocketMessage structs.SendSoc } } +func SendMessageToUserExceptBrowserTabSession(userId string, ignoreBrowserTabSession string, sendSocketMessage structs.SendSocketMessage) { + for _, client := range cache.GetSocketClients() { + if client.UserId == userId && client.BrowserTabSession != ignoreBrowserTabSession { + client.SendMessage(sendSocketMessage) + } + } +} + // This close all connections that are connected with one session id. // For example when a user has two browser tabs opened func CloseAllUserSessionConnections(sessionId string) { diff --git a/socketserver/hub.go b/socketserver/hub.go index aa3dc96..1720ed2 100644 --- a/socketserver/hub.go +++ b/socketserver/hub.go @@ -271,6 +271,11 @@ func RunHub() { break case utils.ReceivedCmdScannerNewScan: log.Info().Msgf("Received new scan: %v", receivedMessage.Body) + + socketclients.SendMessageToUserExceptBrowserTabSession(data.Conn.Locals("userId").(string), data.Conn.Locals("browserTabSession").(string), structs.SendSocketMessage{ + Cmd: utils.SentCmdScannerNewScan, + Body: receivedMessage.Body["Scan"], + }) break case utils.ReceivedCmdHandleUserActionTaskStep: if !socketclients.HasXYPermission(data.Conn.Locals("userId").(string), utils.PermissionGroupTasksOverviewXYReloadGroupConfig, receivedMessage.Body["category"].(string)) {