From ab7dda260baf2b0489f6fe2753a5fabc6f910b93 Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Thu, 16 Aug 2018 14:10:49 +1000 Subject: [PATCH] User disabled plugins now stay disabled after sign in Fixes #1795 Fixes #3691 --- modules/system/classes/PluginManager.php | 19 +++++++++++++++++++ modules/system/classes/UpdateManager.php | 1 - 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/modules/system/classes/PluginManager.php b/modules/system/classes/PluginManager.php index 4d7d6bc25..65044b535 100644 --- a/modules/system/classes/PluginManager.php +++ b/modules/system/classes/PluginManager.php @@ -1,5 +1,6 @@ disabledPlugins = array_merge($this->disabledPlugins, $disabled); } else { + $this->populateDisabledPluginsFromDb(); $this->writeDisabled(); } } @@ -520,6 +522,23 @@ class PluginManager File::put($this->metaFile, json_encode($this->disabledPlugins)); } + /** + * Populates information about disabled plugins from database + * @return void + */ + protected function populateDisabledPluginsFromDb() + { + if (!App::hasDatabase()) { + return; + } + + $disabled = Db::table('system_plugin_versions')->where('is_disabled', '1')->lists('code'); + + foreach ($disabled as $code) { + $this->disabledPlugins[$code] = true; + } + } + /** * Disables a single plugin in the system. * @param string $id Plugin code/namespace diff --git a/modules/system/classes/UpdateManager.php b/modules/system/classes/UpdateManager.php index 43a01f4ea..ce1135cbc 100644 --- a/modules/system/classes/UpdateManager.php +++ b/modules/system/classes/UpdateManager.php @@ -1,6 +1,5 @@