mirror of
https://github.com/e107inc/e107.git
synced 2025-06-04 01:45:15 +02:00
Prevent error if 'social_login' pref is not an array
This commit is contained in:
parent
5edcee8ad0
commit
0bacc5903c
@ -65,7 +65,7 @@ class SocialLoginConfigManager
|
||||
*/
|
||||
public function setProviderConfig($providerName, $options)
|
||||
{
|
||||
$config = $this->getSocialLoginConfig();
|
||||
$config = $this->config->get(self::SOCIAL_LOGIN_PREF);
|
||||
if (!is_array($config)) $this->config->set(self::SOCIAL_LOGIN_PREF, []);
|
||||
|
||||
self::array_unset_empty_recursive($options);
|
||||
@ -182,7 +182,10 @@ class SocialLoginConfigManager
|
||||
|
||||
protected function getSocialLoginConfig()
|
||||
{
|
||||
return $this->config->get(self::SOCIAL_LOGIN_PREF);
|
||||
$config = $this->config->get(self::SOCIAL_LOGIN_PREF);
|
||||
if (!is_array($config)) $config = [];
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -29,7 +29,7 @@ class SocialLoginConfigManagerTest extends \Codeception\Test\Unit
|
||||
include_once(e_PLUGIN . "social/SocialLoginConfigManager.php");
|
||||
|
||||
$this->pref = $this->make('e_pref');
|
||||
$this->pref->set('social_login', [
|
||||
$this->pref->set(SocialLoginConfigManager::SOCIAL_LOGIN_PREF, [
|
||||
'Twitter-OAuth1' => [
|
||||
'enabled' => true,
|
||||
'keys' => [
|
||||
@ -120,6 +120,18 @@ class SocialLoginConfigManagerTest extends \Codeception\Test\Unit
|
||||
$this->assertEquals(['enabled' => true], $result);
|
||||
}
|
||||
|
||||
public function testSetProviderConfigOverwritesNonArray()
|
||||
{
|
||||
$this->pref->set(SocialLoginConfigManager::SOCIAL_LOGIN_PREF, 'bad string!');
|
||||
$manager = new SocialLoginConfigManager($this->pref);
|
||||
$expected = ['enabled' => true];
|
||||
|
||||
$manager->setProviderConfig('FirstProvider', $expected);
|
||||
$result = $manager->getProviderConfig('FirstProvider');
|
||||
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
||||
public function testGetProviderConfig()
|
||||
{
|
||||
$result = $this->manager->getProviderConfig('Twitter');
|
||||
|
Loading…
x
Reference in New Issue
Block a user