From 56fe3637f3bbbbeada4cb231b02f82d53ef86298 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Thu, 24 Nov 2022 15:36:02 +0100 Subject: [PATCH] Fix cPanel user initialization --- .../libraries/RainLoop/Plugins/Manager.php | 20 +++++++++++++------ snappymail/v/0.0.0/cpanel.php | 6 ++++++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Plugins/Manager.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Plugins/Manager.php index e89b886688..37bcbe7c59 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Plugins/Manager.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Plugins/Manager.php @@ -41,15 +41,11 @@ public function __construct(\RainLoop\Actions $oActions) if (\strlen($sList)) { $aList = \SnappyMail\Repository::getEnabledPackagesNames(); foreach ($aList as $i => $sName) { - $oPlugin = $this->CreatePluginByName($sName); - if ($oPlugin) { - $oPlugin->Init(); - $this->aPlugins[] = $oPlugin; - } else { + if (!$this->loadPlugin($sName)) { unset($aList[$i]); } } - $aList = \implode(',', \array_unique($aList)); + $aList = \implode(',', \array_keys($this->aPlugins)); if ($sList != $aList) { $oConfig->Set('plugins', 'enabled_list', $aList); $oConfig->Save(); @@ -58,6 +54,18 @@ public function __construct(\RainLoop\Actions $oActions) } } + public function loadPlugin(string $sName) : bool + { + if (!isset($this->aPlugins[$sName])) { + $oPlugin = $this->CreatePluginByName($sName); + if ($oPlugin) { + $oPlugin->Init(); + $this->aPlugins[$sName] = $oPlugin; + } + } + return isset($this->aPlugins[$sName]); + } + protected static function getPluginPath(string $sName) : ?string { $sPath = APP_PLUGINS_PATH.$sName; diff --git a/snappymail/v/0.0.0/cpanel.php b/snappymail/v/0.0.0/cpanel.php index bcdd7bb0c7..fb1e63cdae 100644 --- a/snappymail/v/0.0.0/cpanel.php +++ b/snappymail/v/0.0.0/cpanel.php @@ -23,5 +23,11 @@ file_put_contents($sFile, json_encode($config, JSON_PRETTY_PRINT)); } +// \RainLoop\Api::Actions()->Plugins()->loadPlugin('login-remote'); + if (!isset($_GET['installed'])) { + \header('Location: ?RemoteAutoLogin&installed'); + exit; + } + $_ENV['SNAPPYMAIL_INCLUDE_AS_API'] = $asApi; }