fix issue in PhpHelper::trimArray() returning an empty array, fixes #751

Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann
2020-01-03 23:24:58 +01:00
parent dd2782771a
commit a5287726a4
3 changed files with 26 additions and 3 deletions

View File

@@ -374,7 +374,7 @@ class PhpHelper
$returnval = array(); $returnval = array();
if (is_array($source)) { if (is_array($source)) {
$source = array_map('trim', $source); $source = array_map('trim', $source);
$source = array_filter($source, function ($value) { $returnval = array_filter($source, function ($value) {
return $value !== ''; return $value !== '';
}); });
} else { } else {

View File

@@ -242,8 +242,8 @@ class Store
$mysql_access_host_array = array_map('trim', explode(',', Settings::Get('system.mysql_access_host'))); $mysql_access_host_array = array_map('trim', explode(',', Settings::Get('system.mysql_access_host')));
$mysql_access_host_array[] = $newfieldvalue; $mysql_access_host_array[] = $newfieldvalue;
$mysql_access_host_array = array_unique(\Froxlor\PhpHelper::arrayTrim($mysql_access_host_array)); $mysql_access_host_array = array_unique(\Froxlor\PhpHelper::arrayTrim($mysql_access_host_array));
$mysql_access_host = implode(',', $mysql_access_host_array);
\Froxlor\Database\DbManager::correctMysqlUsers($mysql_access_host_array); \Froxlor\Database\DbManager::correctMysqlUsers($mysql_access_host_array);
$mysql_access_host = implode(',', $mysql_access_host_array);
Settings::Set('system.mysql_access_host', $mysql_access_host); Settings::Set('system.mysql_access_host', $mysql_access_host);
} }
@@ -293,9 +293,11 @@ class Store
'cleanMySQLAccessHost' 'cleanMySQLAccessHost'
), $mysql_access_host_array); ), $mysql_access_host_array);
$mysql_access_host_array = array_unique($mysql_access_host_array); $mysql_access_host_array = array_unique(\Froxlor\PhpHelper::arrayTrim($mysql_access_host_array));
$newfieldvalue = implode(',', $mysql_access_host_array); $newfieldvalue = implode(',', $mysql_access_host_array);
\Froxlor\Database\DbManager::correctMysqlUsers($mysql_access_host_array); \Froxlor\Database\DbManager::correctMysqlUsers($mysql_access_host_array);
$mysql_access_host = implode(',', $mysql_access_host_array);
Settings::Set('system.mysql_access_host', $mysql_access_host);
} }
return $returnvalue; return $returnvalue;

View File

@@ -1,10 +1,12 @@
<?php <?php
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Froxlor\Settings;
use Froxlor\Api\Commands\Admins; use Froxlor\Api\Commands\Admins;
use Froxlor\Api\Commands\Customers; use Froxlor\Api\Commands\Customers;
use Froxlor\Api\Commands\Mysqls; use Froxlor\Api\Commands\Mysqls;
use Froxlor\Database\Database; use Froxlor\Database\Database;
use Froxlor\Settings\Store;
/** /**
* *
@@ -15,6 +17,7 @@ use Froxlor\Database\Database;
* @covers \Froxlor\Api\Commands\Admins * @covers \Froxlor\Api\Commands\Admins
* @covers \Froxlor\Database\DbManager * @covers \Froxlor\Database\DbManager
* @covers \Froxlor\Database\Manager\DbManagerMySQL * @covers \Froxlor\Database\Manager\DbManagerMySQL
* @covers \Froxlor\Settings\Store
*/ */
class MysqlsTest extends TestCase class MysqlsTest extends TestCase
{ {
@@ -183,6 +186,24 @@ class MysqlsTest extends TestCase
* *
* @depends testCustomerMysqlsAdd * @depends testCustomerMysqlsAdd
*/ */
public function testStoreSettingIpAddress()
{
// this settings test is here because it directly changes mysql users / privileges
$fielddata = array(
'label' => 'serversettings.ipaddress',
'settinggroup' => 'system',
'varname' => 'ipaddress'
);
Store::storeSettingIpAddress('system_system_ipaddress', $fielddata, '82.149.225.47');
$mysql_access_hosts = Settings::Get('system.mysql_access_host');
$this->assertTrue(strpos($mysql_access_hosts, '82.149.225.47') !== false);
}
/**
*
* @depends testStoreSettingIpAddress
*/
public function testGetAllSqlUsers() public function testGetAllSqlUsers()
{ {
\Froxlor\Database\Database::needRoot(true); \Froxlor\Database\Database::needRoot(true);