From 539ddcc51fc5141f2dcee86a88a7d35b0f6acad0 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Sat, 4 Feb 2023 15:28:46 +0100 Subject: [PATCH] Moved pluginEnable() to \SnappyMail\Repository::enablePackage() --- integrations/cyberpanel/install.php | 2 + .../RainLoop/Actions/AdminExtensions.php | 40 +++---------------- .../app/libraries/snappymail/repository.php | 28 +++++++++++++ 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/integrations/cyberpanel/install.php b/integrations/cyberpanel/install.php index eeee31690..67fff17b3 100644 --- a/integrations/cyberpanel/install.php +++ b/integrations/cyberpanel/install.php @@ -61,5 +61,7 @@ if ($oPlugin) { $aList = SnappyMail\Repository::getEnabledPackagesNames(); $aList[] = 'mailbox-detect'; $oConfig->Set('plugins', 'enabled_list', implode(',', array_unique($aList))); +// v2.5.4 +//\SnappyMail\Repository::enablePackage('mailbox-detect'); $oConfig->Save(); diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/AdminExtensions.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/AdminExtensions.php index 6c1bd4c48..c8070b0ac 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/AdminExtensions.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/AdminExtensions.php @@ -5,27 +5,25 @@ namespace RainLoop\Actions; use RainLoop\Enumerations\PluginPropertyType; use RainLoop\Exceptions\ClientException; use RainLoop\Notifications; +use SnappyMail\Repository; trait AdminExtensions { public function DoAdminPackagesList() : array { - return $this->DefaultResponse(\SnappyMail\Repository::getPackagesList()); + return $this->DefaultResponse(Repository::getPackagesList()); } public function DoAdminPackageDelete() : array { - $sId = $this->GetActionParam('id', ''); - $bResult = \SnappyMail\Repository::deletePackage($sId); - static::pluginEnable($sId, false); - return $this->DefaultResponse($bResult); + return $this->DefaultResponse(Repository::deletePackage($this->GetActionParam('id', ''))); } public function DoAdminPackageInstall() : array { $sType = $this->GetActionParam('type', ''); - $bResult = \SnappyMail\Repository::installPackage( + $bResult = Repository::installPackage( $sType, $this->GetActionParam('id', ''), $this->GetActionParam('file', '') @@ -53,7 +51,7 @@ trait AdminExtensions } } - return $this->DefaultResponse($this->pluginEnable($sId, !$bDisable)); + return $this->DefaultResponse(Repository::enablePackage($sId, !$bDisable)); } public function DoAdminPluginLoad() : array @@ -144,32 +142,4 @@ trait AdminExtensions throw new ClientException(Notifications::CantSavePluginSettings); } - - private function pluginEnable(string $sName, bool $bEnable = true) : bool - { - if (!\strlen($sName)) { - return false; - } - - $oConfig = $this->Config(); - - $aEnabledPlugins = \SnappyMail\Repository::getEnabledPackagesNames(); - - $aNewEnabledPlugins = array(); - if ($bEnable) { - $aNewEnabledPlugins = $aEnabledPlugins; - $aNewEnabledPlugins[] = $sName; - } else { - foreach ($aEnabledPlugins as $sPlugin) { - if ($sName !== $sPlugin && \strlen($sPlugin)) { - $aNewEnabledPlugins[] = $sPlugin; - } - } - } - - $oConfig->Set('plugins', 'enabled_list', \trim(\implode(',', \array_unique($aNewEnabledPlugins)), ' ,')); - - return $oConfig->Save(); - } - } diff --git a/snappymail/v/0.0.0/app/libraries/snappymail/repository.php b/snappymail/v/0.0.0/app/libraries/snappymail/repository.php index 4c2be1c52..c105364a0 100644 --- a/snappymail/v/0.0.0/app/libraries/snappymail/repository.php +++ b/snappymail/v/0.0.0/app/libraries/snappymail/repository.php @@ -180,6 +180,33 @@ abstract class Repository ); } + public static function enablePackage(string $sName, bool $bEnable = true) : bool + { + if (!\strlen($sName)) { + return false; + } + + $oConfig = \RainLoop\Api::Config(); + + $aEnabledPlugins = static::getEnabledPackagesNames(); + + $aNewEnabledPlugins = array(); + if ($bEnable) { + $aNewEnabledPlugins = $aEnabledPlugins; + $aNewEnabledPlugins[] = $sName; + } else { + foreach ($aEnabledPlugins as $sPlugin) { + if ($sName !== $sPlugin && \strlen($sPlugin)) { + $aNewEnabledPlugins[] = $sPlugin; + } + } + } + + $oConfig->Set('plugins', 'enabled_list', \trim(\implode(',', \array_unique($aNewEnabledPlugins)), ' ,')); + + return $oConfig->Save(); + } + public static function getPackagesList() : array { empty($_ENV['SNAPPYMAIL_INCLUDE_AS_API']) && \RainLoop\Api::Actions()->IsAdminLoggined(); @@ -228,6 +255,7 @@ abstract class Repository public static function deletePackage(string $sId) : bool { \RainLoop\Api::Actions()->IsAdminLoggined(); + static::enablePackage($sId, false); return static::deletePackageDir($sId); }