From 0ea96f5fe459cadec3e0ff8e4d06e33f17af1756 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Wed, 3 Jan 2024 10:33:35 +0000 Subject: [PATCH] fixes #3569 Closes #3569 Merge request studip/studip!2458 --- lib/plugins/engine/PluginManager.class.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/plugins/engine/PluginManager.class.php b/lib/plugins/engine/PluginManager.class.php index 39f4e870c4e..bb8a5635bb1 100644 --- a/lib/plugins/engine/PluginManager.class.php +++ b/lib/plugins/engine/PluginManager.class.php @@ -282,8 +282,20 @@ class PluginManager $state = $active ? 1 : 0; unset($this->plugins_activated_cache[$user_id]); - return $db->execute("REPLACE INTO plugins_activated (pluginid, range_type, range_id, state) - VALUES (?, 'user', ?, ?)", [$pluginid, $user_id, $state]); + $query = "REPLACE INTO plugins_activated (pluginid, range_type, range_id, state) + VALUES (?, 'user', ?, ?)"; + $result = $db->execute($query, [$pluginid, $user_id, $state]); + + if ($result > 0) { + $plugin = $this->getPluginById($pluginid); + if ($active) { + call_user_func([get_class($plugin), 'onActivation'], $pluginid, $user_id); + } else { + call_user_func([get_class($plugin), 'onDeactivation'], $pluginid, $user_id); + } + } + + return $result; } /** -- GitLab