- more work in multiserver-client-settings (save-methods)

This commit is contained in:
Michael Kaufmann (d00p)
2010-10-20 10:05:54 +00:00
parent cadab96bae
commit 09c5bbcb63
9 changed files with 110 additions and 28 deletions

View File

@@ -17,8 +17,18 @@
* @version $Id$
*/
function correctMysqlUsers($mysql_access_host_array)
function correctMysqlUsers($mysql_access_host_array, $server_id = 0)
{
/**
* for multiserver-clients
* this has to be done in
* a different way
*/
if($server_id > 0) {
correctMysqlUsersRemote($mysql_access_host_array, $server_id);
return;
}
global $db, $settings, $sql, $sql_root;
foreach($sql_root as $mysql_server => $mysql_server_details)
@@ -89,3 +99,17 @@ function correctMysqlUsers($mysql_access_host_array)
unset($db_root);
}
}
/**
* @TODO finish me
* @param array $mysql_access_host_array list of ips/hostnames of the mysql-server
* @param int $server_id id of the multiserver-client
*
* @return null
*/
function correctMysqlUsersRemote($mysql_access_host_array, $server_id = 0)
{
/* if($server_id == 0) */
return;
}

View File

@@ -144,7 +144,7 @@ function processForm(&$form, &$input, $url_params = array())
}
}
function processFormEx(&$form, &$input, $url_params = array(), $part, $settings_all, $settings_part, $only_enabledisable)
function processFormEx(&$form, &$input, $url_params = array(), $part, $settings_all, $settings_part, $only_enabledisable, $server_id = 0)
{
if(validateFormDefinition($form))
{
@@ -287,7 +287,7 @@ function processFormEx(&$form, &$input, $url_params = array(), $part, $settings_
) {
if(isset($changed_fields[$fieldname]))
{
if(($saved_field = saveFormField($fieldname, $fielddetails, manipulateFormFieldData($fieldname, $fielddetails, $changed_fields[$fieldname]))) !== false)
if(($saved_field = saveFormField($fieldname, $fielddetails, manipulateFormFieldData($fieldname, $fielddetails, $changed_fields[$fieldname]), $server_id)) !== false)
{
$saved_fields = array_merge($saved_fields, $saved_field);
}

View File

@@ -17,12 +17,12 @@
* @version $Id$
*/
function saveFormField($fieldname, $fielddata, $newfieldvalue)
function saveFormField($fieldname, $fielddata, $newfieldvalue, $server_id = 0)
{
$returnvalue = '';
if(is_array($fielddata) && isset($fielddata['save_method']) && $fielddata['save_method'] != '' && function_exists($fielddata['save_method']))
{
$returnvalue = call_user_func($fielddata['save_method'], $fieldname, $fielddata, $newfieldvalue);
$returnvalue = call_user_func($fielddata['save_method'], $fieldname, $fielddata, $newfieldvalue, $server_id);
}
elseif(is_array($fielddata) && !isset($fielddata['save_method']))
{

View File

@@ -17,7 +17,7 @@
* @version $Id$
*/
function saveSetting($settinggroup, $varname, $newvalue)
function saveSetting($settinggroup, $varname, $newvalue, $server_id = 0)
{
global $db;
@@ -28,13 +28,9 @@ function saveSetting($settinggroup, $varname, $newvalue)
WHERE
`settinggroup` = \'' . $db->escape($settinggroup) . '\'
AND
`varname`=\'' . $db->escape($varname) . '\' ';
/*
*
* @TODO for multiserver
*
`varname`=\'' . $db->escape($varname) . '\'
AND
`sid`=\''. (int)$server_id . '\' ';
*/
return $db->query($query);
}

View File

@@ -17,11 +17,11 @@
* @version $Id$
*/
function storeSettingField($fieldname, $fielddata, $newfieldvalue)
function storeSettingField($fieldname, $fielddata, $newfieldvalue, $server_id = 0)
{
if(is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] != '' && isset($fielddata['varname']) && $fielddata['varname'] != '')
{
if(saveSetting($fielddata['settinggroup'], $fielddata['varname'], $newfieldvalue) != false)
if(saveSetting($fielddata['settinggroup'], $fielddata['varname'], $newfieldvalue, $server_id) != false)
{
/*
* when fielddata[cronmodule] is set, this means enable/disable a cronjob
@@ -38,7 +38,7 @@ function storeSettingField($fieldname, $fielddata, $newfieldvalue)
{
if((int)$fielddata['dependency']['onlyif'] == (int)$newfieldvalue)
{
storeSettingField($fielddata['dependency']['fieldname'], $fielddata['dependency']['fielddata'], $newfieldvalue);
storeSettingField($fielddata['dependency']['fieldname'], $fielddata['dependency']['fielddata'], $newfieldvalue, $server_id);
}
}

View File

@@ -17,16 +17,16 @@
* @version $Id$
*/
function storeSettingHostname($fieldname, $fielddata, $newfieldvalue)
function storeSettingHostname($fieldname, $fielddata, $newfieldvalue, $server_id = 0)
{
$returnvalue = storeSettingField($fieldname, $fielddata, $newfieldvalue);
$returnvalue = storeSettingField($fieldname, $fielddata, $newfieldvalue, $server_id );
if($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && $fielddata['varname'] == 'hostname')
{
global $db, $idna_convert;
$newfieldvalue = $idna_convert->encode($newfieldvalue);
$customerstddomains_result = $db->query('SELECT `standardsubdomain` FROM `' . TABLE_PANEL_CUSTOMERS . '` WHERE `standardsubdomain` <> \'0\'');
$customerstddomains_result = $db->query('SELECT `standardsubdomain` FROM `' . TABLE_PANEL_CUSTOMERS . '` WHERE `standardsubdomain` <> \'0\' and `sid` = "'.$server_id.'"');
$ids = array();
while($customerstddomains_row = $db->fetch_array($customerstddomains_result))
@@ -36,8 +36,15 @@ function storeSettingHostname($fieldname, $fielddata, $newfieldvalue)
if(count($ids) > 0)
{
$db->query('UPDATE `' . TABLE_PANEL_DOMAINS . '` SET `domain` = REPLACE(`domain`, \'' . $db->escape(getSetting('system', 'hostname')) . '\', \'' . $db->escape($newfieldvalue) . '\') WHERE `id` IN (\'' . implode('\',\'', $ids) . '\')');
inserttask('1');
if($server_id > 0)
{
$client = froxlorclient::getInstance(null, $db, $server_id);
$syshostname = $client->getSetting('system', 'hostname');
} else {
$syshostname = getSetting('system', 'hostname');
}
$db->query('UPDATE `' . TABLE_PANEL_DOMAINS . '` SET `domain` = REPLACE(`domain`, \'' . $db->escape($syshostname) . '\', \'' . $db->escape($newfieldvalue) . '\') WHERE `id` IN (\'' . implode('\',\'', $ids) . '\') AND `sid` = "'.$server_id.'"');
inserttask('1', $server_id);
}
}

View File

@@ -17,13 +17,20 @@
* @version $Id$
*/
function storeSettingIpAddress($fieldname, $fielddata, $newfieldvalue)
function storeSettingIpAddress($fieldname, $fielddata, $newfieldvalue, $server_id = 0)
{
$returnvalue = storeSettingField($fieldname, $fielddata, $newfieldvalue);
$returnvalue = storeSettingField($fieldname, $fielddata, $newfieldvalue, $server_id);
if($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && $fielddata['varname'] == 'ipaddress')
{
$mysql_access_host_array = array_map('trim', explode(',', getSetting('system', 'mysql_access_host')));
if($server_id > 0)
{
$client = froxlorclient::getInstance(null, $db, $server_id);
$mysqlhosts = $client->getSetting('system', 'mysql_access_host');
} else {
$mysqlhosts = getSetting('system', 'mysql_access_host');
}
$mysql_access_host_array = array_map('trim', explode(',', $mysqlhosts));
$mysql_access_host_array[] = $newfieldvalue;
$mysql_access_host_array = array_unique(array_trim($mysql_access_host_array));
$mysql_access_host = implode(',', $mysql_access_host_array);

View File

@@ -17,9 +17,9 @@
* @version $Id$
*/
function storeSettingMysqlAccessHost($fieldname, $fielddata, $newfieldvalue)
function storeSettingMysqlAccessHost($fieldname, $fielddata, $newfieldvalue, $server_id = 0)
{
$returnvalue = storeSettingField($fieldname, $fielddata, $newfieldvalue);
$returnvalue = storeSettingField($fieldname, $fielddata, $newfieldvalue, $server_id);
if($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && $fielddata['varname'] == 'mysql_access_host')
{
@@ -39,7 +39,7 @@ function storeSettingMysqlAccessHost($fieldname, $fielddata, $newfieldvalue)
$mysql_access_host_array = array_unique(array_trim($mysql_access_host_array));
$newfieldvalue = implode(',', $mysql_access_host_array);
correctMysqlUsers($mysql_access_host_array);
correctMysqlUsers($mysql_access_host_array, $server_id);
}
return $returnvalue;