mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-09-20 07:35:55 +08:00
Moved pluginEnable() to \SnappyMail\Repository::enablePackage()
This commit is contained in:
parent
cf08c1aba4
commit
539ddcc51f
|
@ -61,5 +61,7 @@ if ($oPlugin) {
|
||||||
$aList = SnappyMail\Repository::getEnabledPackagesNames();
|
$aList = SnappyMail\Repository::getEnabledPackagesNames();
|
||||||
$aList[] = 'mailbox-detect';
|
$aList[] = 'mailbox-detect';
|
||||||
$oConfig->Set('plugins', 'enabled_list', implode(',', array_unique($aList)));
|
$oConfig->Set('plugins', 'enabled_list', implode(',', array_unique($aList)));
|
||||||
|
// v2.5.4
|
||||||
|
//\SnappyMail\Repository::enablePackage('mailbox-detect');
|
||||||
|
|
||||||
$oConfig->Save();
|
$oConfig->Save();
|
||||||
|
|
|
@ -5,27 +5,25 @@ namespace RainLoop\Actions;
|
||||||
use RainLoop\Enumerations\PluginPropertyType;
|
use RainLoop\Enumerations\PluginPropertyType;
|
||||||
use RainLoop\Exceptions\ClientException;
|
use RainLoop\Exceptions\ClientException;
|
||||||
use RainLoop\Notifications;
|
use RainLoop\Notifications;
|
||||||
|
use SnappyMail\Repository;
|
||||||
|
|
||||||
trait AdminExtensions
|
trait AdminExtensions
|
||||||
{
|
{
|
||||||
|
|
||||||
public function DoAdminPackagesList() : array
|
public function DoAdminPackagesList() : array
|
||||||
{
|
{
|
||||||
return $this->DefaultResponse(\SnappyMail\Repository::getPackagesList());
|
return $this->DefaultResponse(Repository::getPackagesList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function DoAdminPackageDelete() : array
|
public function DoAdminPackageDelete() : array
|
||||||
{
|
{
|
||||||
$sId = $this->GetActionParam('id', '');
|
return $this->DefaultResponse(Repository::deletePackage($this->GetActionParam('id', '')));
|
||||||
$bResult = \SnappyMail\Repository::deletePackage($sId);
|
|
||||||
static::pluginEnable($sId, false);
|
|
||||||
return $this->DefaultResponse($bResult);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function DoAdminPackageInstall() : array
|
public function DoAdminPackageInstall() : array
|
||||||
{
|
{
|
||||||
$sType = $this->GetActionParam('type', '');
|
$sType = $this->GetActionParam('type', '');
|
||||||
$bResult = \SnappyMail\Repository::installPackage(
|
$bResult = Repository::installPackage(
|
||||||
$sType,
|
$sType,
|
||||||
$this->GetActionParam('id', ''),
|
$this->GetActionParam('id', ''),
|
||||||
$this->GetActionParam('file', '')
|
$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
|
public function DoAdminPluginLoad() : array
|
||||||
|
@ -144,32 +142,4 @@ trait AdminExtensions
|
||||||
|
|
||||||
throw new ClientException(Notifications::CantSavePluginSettings);
|
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();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
public static function getPackagesList() : array
|
||||||
{
|
{
|
||||||
empty($_ENV['SNAPPYMAIL_INCLUDE_AS_API']) && \RainLoop\Api::Actions()->IsAdminLoggined();
|
empty($_ENV['SNAPPYMAIL_INCLUDE_AS_API']) && \RainLoop\Api::Actions()->IsAdminLoggined();
|
||||||
|
@ -228,6 +255,7 @@ abstract class Repository
|
||||||
public static function deletePackage(string $sId) : bool
|
public static function deletePackage(string $sId) : bool
|
||||||
{
|
{
|
||||||
\RainLoop\Api::Actions()->IsAdminLoggined();
|
\RainLoop\Api::Actions()->IsAdminLoggined();
|
||||||
|
static::enablePackage($sId, false);
|
||||||
return static::deletePackageDir($sId);
|
return static::deletePackageDir($sId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue