- more work in multiserver-client-settings (save-methods)
This commit is contained in:
@@ -120,6 +120,12 @@ if((int)$settings['multiserver']['enabled'] == 1)
|
|||||||
$new_client->Set('desc', $desc, true, false);
|
$new_client->Set('desc', $desc, true, false);
|
||||||
$new_client->Set('enabled', $client_enabled, true, true);
|
$new_client->Set('enabled', $client_enabled, true, true);
|
||||||
$cid = $new_client->Insert();
|
$cid = $new_client->Insert();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @TODO create a set of default settings,
|
||||||
|
* which depends on the client-type
|
||||||
|
* (implementation will follow)
|
||||||
|
*/
|
||||||
|
|
||||||
$log->logAction(ADM_ACTION, LOG_WARNING, "added froxlor-client '" . $name . "' (#" . $cid . ")");
|
$log->logAction(ADM_ACTION, LOG_WARNING, "added froxlor-client '" . $name . "' (#" . $cid . ")");
|
||||||
redirectTo($filename, Array('page' => $page, 's' => $s));
|
redirectTo($filename, Array('page' => $page, 's' => $s));
|
||||||
@@ -200,6 +206,48 @@ if((int)$settings['multiserver']['enabled'] == 1)
|
|||||||
if(isset($_POST['send'])
|
if(isset($_POST['send'])
|
||||||
&& $_POST['send'] == 'send')
|
&& $_POST['send'] == 'send')
|
||||||
{
|
{
|
||||||
|
$_part = isset($_GET['part']) ? $_GET['part'] : '';
|
||||||
|
|
||||||
|
if($_part == '')
|
||||||
|
{
|
||||||
|
$_part = isset($_POST['part']) ? $_POST['part'] : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if($_part != '')
|
||||||
|
{
|
||||||
|
if($_part == 'all')
|
||||||
|
{
|
||||||
|
$settings_all = true;
|
||||||
|
$settings_part = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$settings_all = false;
|
||||||
|
$settings_part = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$only_enabledisable = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$settings_all = false;
|
||||||
|
$settings_part = false;
|
||||||
|
$only_enabledisable = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(processFormEx(
|
||||||
|
$settings_data,
|
||||||
|
$_POST,
|
||||||
|
array('filename' => $filename, 'action' => $action, 'page' => $page),
|
||||||
|
$_part,
|
||||||
|
$settings_all,
|
||||||
|
$settings_part,
|
||||||
|
$only_enabledisable,
|
||||||
|
$id
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
standard_success('settingssaved', '', array('filename' => $filename, 'action' => $action, 'page' => $page));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -211,8 +259,8 @@ if((int)$settings['multiserver']['enabled'] == 1)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @TODO this has to get the client-id so the
|
* pass the client-id so the links "configuration"
|
||||||
* links "configuration" have the ID
|
* gets page=clients, action=settings and id={$id}
|
||||||
*/
|
*/
|
||||||
$fields = buildFormEx($settings_data, $_part, $id);
|
$fields = buildFormEx($settings_data, $_part, $id);
|
||||||
|
|
||||||
|
|||||||
@@ -17,8 +17,18 @@
|
|||||||
* @version $Id$
|
* @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;
|
global $db, $settings, $sql, $sql_root;
|
||||||
|
|
||||||
foreach($sql_root as $mysql_server => $mysql_server_details)
|
foreach($sql_root as $mysql_server => $mysql_server_details)
|
||||||
@@ -89,3 +99,17 @@ function correctMysqlUsers($mysql_access_host_array)
|
|||||||
unset($db_root);
|
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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -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))
|
if(validateFormDefinition($form))
|
||||||
{
|
{
|
||||||
@@ -287,7 +287,7 @@ function processFormEx(&$form, &$input, $url_params = array(), $part, $settings_
|
|||||||
) {
|
) {
|
||||||
if(isset($changed_fields[$fieldname]))
|
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);
|
$saved_fields = array_merge($saved_fields, $saved_field);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,12 +17,12 @@
|
|||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function saveFormField($fieldname, $fielddata, $newfieldvalue)
|
function saveFormField($fieldname, $fielddata, $newfieldvalue, $server_id = 0)
|
||||||
{
|
{
|
||||||
$returnvalue = '';
|
$returnvalue = '';
|
||||||
if(is_array($fielddata) && isset($fielddata['save_method']) && $fielddata['save_method'] != '' && function_exists($fielddata['save_method']))
|
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']))
|
elseif(is_array($fielddata) && !isset($fielddata['save_method']))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function saveSetting($settinggroup, $varname, $newvalue)
|
function saveSetting($settinggroup, $varname, $newvalue, $server_id = 0)
|
||||||
{
|
{
|
||||||
global $db;
|
global $db;
|
||||||
|
|
||||||
@@ -28,13 +28,9 @@ function saveSetting($settinggroup, $varname, $newvalue)
|
|||||||
WHERE
|
WHERE
|
||||||
`settinggroup` = \'' . $db->escape($settinggroup) . '\'
|
`settinggroup` = \'' . $db->escape($settinggroup) . '\'
|
||||||
AND
|
AND
|
||||||
`varname`=\'' . $db->escape($varname) . '\' ';
|
`varname`=\'' . $db->escape($varname) . '\'
|
||||||
/*
|
|
||||||
*
|
|
||||||
* @TODO for multiserver
|
|
||||||
*
|
|
||||||
AND
|
AND
|
||||||
`sid`=\''. (int)$server_id . '\' ';
|
`sid`=\''. (int)$server_id . '\' ';
|
||||||
*/
|
|
||||||
return $db->query($query);
|
return $db->query($query);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,11 +17,11 @@
|
|||||||
* @version $Id$
|
* @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(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
|
* 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)
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,16 +17,16 @@
|
|||||||
* @version $Id$
|
* @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')
|
if($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && $fielddata['varname'] == 'hostname')
|
||||||
{
|
{
|
||||||
global $db, $idna_convert;
|
global $db, $idna_convert;
|
||||||
$newfieldvalue = $idna_convert->encode($newfieldvalue);
|
$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();
|
$ids = array();
|
||||||
|
|
||||||
while($customerstddomains_row = $db->fetch_array($customerstddomains_result))
|
while($customerstddomains_row = $db->fetch_array($customerstddomains_result))
|
||||||
@@ -36,8 +36,15 @@ function storeSettingHostname($fieldname, $fielddata, $newfieldvalue)
|
|||||||
|
|
||||||
if(count($ids) > 0)
|
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) . '\')');
|
if($server_id > 0)
|
||||||
inserttask('1');
|
{
|
||||||
|
$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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,13 +17,20 @@
|
|||||||
* @version $Id$
|
* @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')
|
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[] = $newfieldvalue;
|
||||||
$mysql_access_host_array = array_unique(array_trim($mysql_access_host_array));
|
$mysql_access_host_array = array_unique(array_trim($mysql_access_host_array));
|
||||||
$mysql_access_host = implode(',', $mysql_access_host_array);
|
$mysql_access_host = implode(',', $mysql_access_host_array);
|
||||||
|
|||||||
@@ -17,9 +17,9 @@
|
|||||||
* @version $Id$
|
* @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')
|
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));
|
$mysql_access_host_array = array_unique(array_trim($mysql_access_host_array));
|
||||||
$newfieldvalue = implode(',', $mysql_access_host_array);
|
$newfieldvalue = implode(',', $mysql_access_host_array);
|
||||||
correctMysqlUsers($mysql_access_host_array);
|
correctMysqlUsers($mysql_access_host_array, $server_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $returnvalue;
|
return $returnvalue;
|
||||||
|
|||||||
Reference in New Issue
Block a user