From 06e1c5a1ef96a0b3642e23dc285b446a2cf59456 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 13 Sep 2023 09:44:33 +0200 Subject: [PATCH] added remove log manager server connection --- modules/utils/globals.go | 8 ++++++-- socketclients/socketclients.go | 11 +++++++++++ socketserver/hub.go | 7 +++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/modules/utils/globals.go b/modules/utils/globals.go index 69f819b..86a1d26 100644 --- a/modules/utils/globals.go +++ b/modules/utils/globals.go @@ -75,7 +75,7 @@ const ( SentCmdAdminAreaUpdateRoleSortingOrder = 21 SentCmdAdminAreaRoleDeleted = 22 SentCmdAllUsersUserRoleUpdated = 23 - SentCmdRolePermissionsUpdated = 24 + SentCmdRolePermissionsUpdated = 24 SentCmdErrorNoPermissions = 25 SentCmdAllUsersNewUserCreated = 26 SentCmdAllUsersUserDeleted = 27 @@ -95,7 +95,8 @@ const ( SentCmdAllNotificationsDeleted = 42 SentCmdOneNotificationDeleted = 43 SentCmdAdminAreaManageCheckedForAvailableCategories = 44 - SentCmdAdminAreaManageLogManagerServerConnectionAdded = 45 + SentCmdAdminAreaManageLogManagerServerConnectionAdded = 45 + SentCmdAdminAreaManageLogManagerServerConnectionRemoved = 46 ) // commands received from web clients @@ -126,6 +127,7 @@ const ( ReceivedCmdDeleteOneNotification = 25 ReceivedCmdAdminAreaManageCheckWhichCategoriesAreAvailable = 26 ReceivedCmdAdminAreaManageAddLogManagerServerConnection = 27 + ReceivedCmdAdminAreaManageDeleteLogManagerServerConnection = 28 ) const ( @@ -195,6 +197,7 @@ const ( _adminAreaManage = _adminArea + "manage." PermissionAdminAreaManageCheckWhichCategoriesAreAvailable = _adminAreaManage + "check_which_categories_are_available" PermissionAdminAreaManageAddLogManagerServerConnection = _adminAreaManage + "add_log_manager_server_connection" + PermissionAdminAreaManageRemoveLogManagerServerConnection = _adminAreaManage + "remove_add_log_manager_server_connection" PermissionUserProfileApiKeys = "user_profile.api_keys" _consoles = "consoles." @@ -220,6 +223,7 @@ var SystemPermissions = []string{ PermissionAdminAreaLogs, PermissionAdminAreaManageCheckWhichCategoriesAreAvailable, PermissionAdminAreaManageAddLogManagerServerConnection, + PermissionAdminAreaManageRemoveLogManagerServerConnection, PermissionUserProfileApiKeys, PermissionConsolesView, } diff --git a/socketclients/socketclients.go b/socketclients/socketclients.go index daa5551..265c710 100644 --- a/socketclients/socketclients.go +++ b/socketclients/socketclients.go @@ -1099,3 +1099,14 @@ func AddLogManagerServerConnection(displayName string, address string) { Body: newConnection, }) } + +func DeleteLogManagerServerConnection(id string) { + database.DB.Where("id = ?", id).Delete(&structs.LogManagerServerConnection{}) + + BroadcastMessageToTopics( + []string{utils.SubscribedTopicAdminAreaManage, utils.SubscribedTopicConsoles}, + structs.SendSocketMessage{ + Cmd: utils.SentCmdAdminAreaManageLogManagerServerConnectionRemoved, + Body: id, + }) +} \ No newline at end of file diff --git a/socketserver/hub.go b/socketserver/hub.go index 8add445..05f1d67 100644 --- a/socketserver/hub.go +++ b/socketserver/hub.go @@ -341,6 +341,13 @@ func RunHub() { socketclients.AddLogManagerServerConnection(receivedMessage.Body["DisplayName"].(string), receivedMessage.Body["Address"].(string)) break + case utils.ReceivedCmdAdminAreaManageDeleteLogManagerServerConnection: + if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAdminAreaManageRemoveLogManagerServerConnection) { + socketclients.SendErrorMessageNoPermissions(data.Conn.Locals("sessionId").(string)) + } + + socketclients.DeleteLogManagerServerConnection(receivedMessage.Body["Id"].(string)) + break default: log.Error().Msgf("Received unknown message: %v", receivedMessage)