From eab08ce2ea2fb9d6c3a95c1454f3976808b9cc09 Mon Sep 17 00:00:00 2001 From: agsantos <aline.gondimsantos@savoirfairelinux.com> Date: Wed, 7 Apr 2021 19:19:04 -0400 Subject: [PATCH] plugins: don't activate if enablePlugins preference is disabled GitLab: #497 Change-Id: I100a9f5813d0a310298bb381a994073966dc010e --- src/client/plugin_manager_interface.cpp | 8 +++++++- src/manager.cpp | 8 +++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/client/plugin_manager_interface.cpp b/src/client/plugin_manager_interface.cpp index 0da6fa6641..52359626f3 100644 --- a/src/client/plugin_manager_interface.cpp +++ b/src/client/plugin_manager_interface.cpp @@ -83,7 +83,7 @@ getInstalledPlugins() std::vector<std::string> getLoadedPlugins() { - return jami::Manager::instance().getJamiPluginManager().getLoadedPlugins(); + return jami::Manager::instance().pluginPreferences.getLoadedPlugins(); } int @@ -186,6 +186,12 @@ void setPluginsEnabled(bool state) { jami::Manager::instance().pluginPreferences.setPluginsEnabled(state); + for (auto& item : jami::Manager::instance().pluginPreferences.getLoadedPlugins()) { + if (state) + jami::Manager::instance().getJamiPluginManager().loadPlugin(item); + else + jami::Manager::instance().getJamiPluginManager().unloadPlugin(item); + } jami::Manager::instance().saveConfig(); } } // namespace DRing diff --git a/src/manager.cpp b/src/manager.cpp index 6cbc79f6df..2544543e7b 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -2918,9 +2918,11 @@ Manager::loadAccountMap(const YAML::Node& node) #ifdef ENABLE_PLUGIN pluginPreferences.unserialize(node); - std::vector<std::string> loadedPlugins = pluginPreferences.getLoadedPlugins(); - for (const std::string& plugin : loadedPlugins) { - jami::Manager::instance().getJamiPluginManager().loadPlugin(plugin); + if (pluginPreferences.getPluginsEnabled()) { + std::vector<std::string> loadedPlugins = pluginPreferences.getLoadedPlugins(); + for (const std::string& plugin : loadedPlugins) { + jami::Manager::instance().getJamiPluginManager().loadPlugin(plugin); + } } #endif } catch (const YAML::Exception& e) { -- GitLab