From f19308703c8769cd943dfcef416484c3353fd5fb Mon Sep 17 00:00:00 2001 From: Sebastien JEAN <sebastien.jean54@gmail.com> Date: Mon, 18 Nov 2013 06:35:58 -0500 Subject: [PATCH] fixing editing dns, mail, db and web domain servers by client issue --- interface/lib/classes/validate_client.inc.php | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 42 insertions(+), 1 deletions(-) diff --git a/interface/lib/classes/validate_client.inc.php b/interface/lib/classes/validate_client.inc.php index 9b0546a..357a695 100644 --- a/interface/lib/classes/validate_client.inc.php +++ b/interface/lib/classes/validate_client.inc.php @@ -81,7 +81,8 @@ ($global_config['ftpuser_prefix'] == '[CLIENTNAME]' || $global_config['ftpuser_prefix'] == '' || $global_config['shelluser_prefix'] == '[CLIENTNAME]' || - $global_config['shelluser_prefix'] == '' )) { + $global_config['shelluser_prefix'] == '' ) && + $global_config['client_username_web_check_disabled'] == 'n') { $errmsg = $validator['errmsg']; if(isset($app->tform->wordbook[$errmsg])) { return $app->tform->wordbook[$errmsg]."<br>\r\n"; @@ -94,6 +95,46 @@ } + + function check_used_servers($field_name, $field_value, $validator) + { + global $app; + + if (is_array($field_value)) + { + $client_id = intval($_POST['id']); + $used_servers = null; + + switch ($field_name) + { + case 'web_servers': + $used_servers = $app->db->queryAllRecords('SELECT domain_id FROM web_domain INNER JOIN sys_user ON web_domain.sys_userid = sys_user.userid WHERE client_id = ' . $client_id . ' AND server_id NOT IN (' . implode(', ', $field_value) . ');'); + break; + + case 'dns_servers': + $used_servers = $app->db->queryAllRecords('SELECT id FROM dns_rr INNER JOIN sys_user ON dns_rr.sys_userid = sys_user.userid WHERE client_id = ' . $client_id . ' AND server_id NOT IN (' . implode(', ', $field_value) . ');'); + break; + + case 'db_servers': + $used_servers = $app->db->queryAllRecords('SELECT database_id FROM web_database INNER JOIN sys_user ON web_database.sys_userid = sys_user.userid WHERE client_id = ' . $client_id . ' AND server_id NOT IN (' . implode(', ', $field_value) . ');'); + break; + + case 'mail_servers': + $used_servers = $app->db->queryAllRecords('SELECT domain_id FROM mail_domain INNER JOIN sys_user ON mail_domain.sys_userid = sys_user.userid WHERE client_id = ' . $client_id . ' AND server_id NOT IN (' . implode(', ', $field_value) . ');'); + break; + } + + if ($used_servers === null || count($used_servers)) + { + $errmsg = $validator['errmsg']; + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } + } + } + } -- Gitblit v1.9.1