From 7bfb5aec26c6bb8c49fa19e8347bc91acc86fe92 Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Thu, 5 Jul 2018 10:23:55 -0400 Subject: Add back enable/disable WS events (#9052) --- app/plugin.go | 12 ++++++++++++ app/plugin_install.go | 6 ++++++ model/websocket_message.go | 4 +++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/plugin.go b/app/plugin.go index af4bae649..d68579311 100644 --- a/app/plugin.go +++ b/app/plugin.go @@ -170,6 +170,12 @@ func (a *App) EnablePlugin(id string) *model.AppError { cfg.PluginSettings.PluginStates[id] = &model.PluginState{Enable: true} }) + if manifest.HasClient() { + message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_PLUGIN_ENABLED, "", "", "", nil) + message.Add("manifest", manifest.ClientManifest()) + a.Publish(message) + } + // This call will cause SyncPluginsActiveState to be called and the plugin to be activated if err := a.SaveConfig(a.Config(), true); err != nil { if err.Id == "ent.cluster.save_config.error" { @@ -208,6 +214,12 @@ func (a *App) DisablePlugin(id string) *model.AppError { cfg.PluginSettings.PluginStates[id] = &model.PluginState{Enable: false} }) + if manifest.HasClient() { + message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_PLUGIN_DISABLED, "", "", "", nil) + message.Add("manifest", manifest.ClientManifest()) + a.Publish(message) + } + if err := a.SaveConfig(a.Config(), true); err != nil { return model.NewAppError("DisablePlugin", "app.plugin.config.app_error", nil, err.Error(), http.StatusInternalServerError) } diff --git a/app/plugin_install.go b/app/plugin_install.go index c03ad2108..e49f6f83e 100644 --- a/app/plugin_install.go +++ b/app/plugin_install.go @@ -108,6 +108,12 @@ func (a *App) removePlugin(id string) *model.AppError { return model.NewAppError("removePlugin", "app.plugin.not_installed.app_error", nil, "", http.StatusBadRequest) } + if a.Plugins.IsActive(id) && manifest.HasClient() { + message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_PLUGIN_DISABLED, "", "", "", nil) + message.Add("manifest", manifest.ClientManifest()) + a.Publish(message) + } + a.Plugins.Deactivate(id) err = os.RemoveAll(pluginPath) diff --git a/model/websocket_message.go b/model/websocket_message.go index cd249ff27..ea8872d76 100644 --- a/model/websocket_message.go +++ b/model/websocket_message.go @@ -44,7 +44,9 @@ const ( WEBSOCKET_EVENT_RESPONSE = "response" WEBSOCKET_EVENT_EMOJI_ADDED = "emoji_added" WEBSOCKET_EVENT_CHANNEL_VIEWED = "channel_viewed" - WEBSOCKET_EVENT_PLUGIN_STATUSES_CHANGED = "plugin_statuses_changed" // EXPERIMENTAL - SUBJECT TO CHANGE + WEBSOCKET_EVENT_PLUGIN_STATUSES_CHANGED = "plugin_statuses_changed" + WEBSOCKET_EVENT_PLUGIN_ENABLED = "plugin_enabled" + WEBSOCKET_EVENT_PLUGIN_DISABLED = "plugin_disabled" WEBSOCKET_EVENT_ROLE_UPDATED = "role_updated" WEBSOCKET_EVENT_LICENSE_CHANGED = "license_changed" WEBSOCKET_EVENT_CONFIG_CHANGED = "config_changed" -- cgit v1.2.3-1-g7c22