diff --git a/plugins/change-password/index.php b/plugins/change-password/index.php index de417c4fb..3a5595604 100644 --- a/plugins/change-password/index.php +++ b/plugins/change-password/index.php @@ -160,8 +160,7 @@ class ChangePasswordPlugin extends \RainLoop\Plugins\AbstractPlugin $bResult = false; $oConfig = $this->Config(); foreach ($this->getSupportedDrivers() as $name => $class) { - $sFoundedValue = ''; - if (\RainLoop\Plugins\Helper::ValidateWildcardValues($oAccount->Email(), $oConfig->Get('plugin', "driver_{$name}_allowed_emails"), $sFoundedValue)) { + if (\RainLoop\Plugins\Helper::ValidateWildcardValues($oAccount->Email(), $oConfig->Get('plugin', "driver_{$name}_allowed_emails"))) { $name = $class::NAME; $oLogger = $oActions->Logger(); try diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Plugins/Helper.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Plugins/Helper.php index 13f312cd6..b4168bf80 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Plugins/Helper.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Plugins/Helper.php @@ -9,45 +9,35 @@ class Helper $sFoundValue = ''; $sString = \trim($sString); - if ('' === $sString) - { + if ('' === $sString) { return false; } $sWildcardValues = \trim($sWildcardValues); - if ('' === $sWildcardValues) - { + if ('' === $sWildcardValues) { return true; } - if ('*' === $sWildcardValues) - { + if ('*' === $sWildcardValues) { $sFoundValue = '*'; return true; } - $sWildcardValues = \preg_replace('/[*]+/', '*', \preg_replace('/[\s,;]+/', ' ', $sWildcardValues)); - $aWildcardValues = \explode(' ', $sWildcardValues); + $aWildcardValues = \preg_split('/[\\s,;]+/', \preg_replace('/\\*+/', '*', $sWildcardValues)); - foreach ($aWildcardValues as $sItem) - { - if (false === \strpos($sItem, '*')) - { - if ($sString === $sItem) - { + foreach ($aWildcardValues as $sItem) { + if (false === \strpos($sItem, '*')) { + if ($sString === $sItem) { $sFoundValue = $sItem; return true; } - } - else - { + } else { $aItem = \explode('*', $sItem); $aItem = \array_map(function ($sItem) { return \preg_quote($sItem, '/'); }, $aItem); - if (\preg_match('/'.\implode('.*', $aItem).'/', $sString)) - { + if (\preg_match('/'.\implode('.*', $aItem).'/', $sString)) { $sFoundValue = $sItem; return true; } diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/Domain/DefaultDomain.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/Domain/DefaultDomain.php index 960fe5e90..0e0ac02d2 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/Domain/DefaultDomain.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/Domain/DefaultDomain.php @@ -82,18 +82,18 @@ class DefaultDomain implements DomainInterface { $mResult = null; - $sDisabled = ''; + $aDisabled = []; $sFoundValue = ''; $sRealFileName = $this->codeFileName($sName); - if (\file_exists($this->sDomainPath.'/disabled')) - { - $sDisabled = \file_get_contents($this->sDomainPath.'/disabled'); + if (\file_exists($this->sDomainPath.'/disabled')) { + $aDisabled = \explode(',', \file_get_contents($this->sDomainPath.'/disabled')); } + $bCheckDisabled = $bCheckDisabled && 0 < \count($aDisabled); if (\file_exists($this->sDomainPath.'/'.$sRealFileName.'.ini') && - (!$bCheckDisabled || 0 === \strlen($sDisabled) || false === \strpos(','.$sDisabled.',', ','.\MailSo\Base\Utils::IdnToAscii($sName, true).','))) + (!$bCheckDisabled || !\in_array(\MailSo\Base\Utils::IdnToAscii($sName, true), $aDisabled))) { $aDomain = \parse_ini_file($this->sDomainPath.'/'.$sRealFileName.'.ini') ?: array(); // if ($bCheckAliases && !empty($aDomain['alias'])) @@ -109,7 +109,7 @@ class DefaultDomain implements DomainInterface $mResult = \RainLoop\Model\Domain::NewInstanceFromDomainConfigArray($sName, $aDomain); } else if ($bCheckAliases && \file_exists($this->sDomainPath.'/'.$sRealFileName.'.alias') && - (!$bCheckDisabled || 0 === \strlen($sDisabled) || false === \strpos(','.$sDisabled.',', ','.\MailSo\Base\Utils::IdnToAscii($sName, true).','))) + (!$bCheckDisabled || !\in_array(\MailSo\Base\Utils::IdnToAscii($sName, true), $aDisabled))) { $sAlias = \trim(\file_get_contents($this->sDomainPath.'/'.$sRealFileName.'.alias')); if (!empty($sAlias)) @@ -126,16 +126,12 @@ class DefaultDomain implements DomainInterface else if ($bFindWithWildCard) { $sNames = $this->getWildcardDomainsLine(); - if (\strlen($sNames)) - { - if (\RainLoop\Plugins\Helper::ValidateWildcardValues( - \MailSo\Base\Utils::IdnToUtf8($sName, true), $sNames, $sFoundValue) && \strlen($sFoundValue)) - { - if (!$bCheckDisabled || 0 === \strlen($sDisabled) || false === \strpos(','.$sDisabled.',', ','.$sFoundValue.',')) - { - $mResult = $this->Load($sFoundValue, false); - } - } + if (\strlen($sNames) + && \RainLoop\Plugins\Helper::ValidateWildcardValues(\MailSo\Base\Utils::IdnToUtf8($sName, true), $sNames, $sFoundValue) + && \strlen($sFoundValue) + && (!$bCheckDisabled || !\in_array($sFoundValue, $aDisabled)) + ) { + $mResult = $this->Load($sFoundValue, false); } }