From dd0130670fe3cab4c7e2c1ab4f3bf0d2b2d512b0 Mon Sep 17 00:00:00 2001 From: Denny Bortfeldt <denny@bortfeldt.net> Date: Mon, 27 Jun 2016 18:02:16 -0400 Subject: [PATCH] When uploading a logo which is smaller than the current ispconfig one, then the logo will be on the left side of the header. In my opinion it will look better when it's centered. You could vote about it ;) --- interface/lib/classes/validate_client.inc.php | 195 ++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 160 insertions(+), 35 deletions(-) diff --git a/interface/lib/classes/validate_client.inc.php b/interface/lib/classes/validate_client.inc.php index 9b0546a..db55b04 100644 --- a/interface/lib/classes/validate_client.inc.php +++ b/interface/lib/classes/validate_client.inc.php @@ -29,59 +29,60 @@ */ class validate_client { - + /* Validator function to check if a username is unique. */ function username_unique($field_name, $field_value, $validator) { global $app; - + if(isset($app->remoting_lib->primary_id)) { $client_id = $app->remoting_lib->primary_id; } else { $client_id = $app->tform->primary_id; } - + if($client_id == 0) { - $num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM sys_user WHERE username = '".$app->db->quote($field_value)."'"); - if($num_rec["number"] > 0) { - $errmsg = $validator['errmsg']; - if(isset($app->tform->wordbook[$errmsg])) { - return $app->tform->wordbook[$errmsg]."<br>\r\n"; - } else { - return $errmsg."<br>\r\n"; - } - } - } else { - $num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM sys_user WHERE username = '".$app->db->quote($field_value)."' AND client_id != ".$client_id); + $num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM sys_user WHERE username = ?", $field_value); if($num_rec["number"] > 0) { - $errmsg = $validator['errmsg']; - if(isset($app->tform->wordbook[$errmsg])) { - return $app->tform->wordbook[$errmsg]."<br>\r\n"; + $errmsg = $validator['errmsg']; + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } + } + } else { + $num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM sys_user WHERE username = ? AND client_id != ?", $field_value, $client_id); + if($num_rec["number"] > 0) { + $errmsg = $validator['errmsg']; + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; } else { return $errmsg."<br>\r\n"; } } } } - + function username_collision($field_name, $field_value, $validator) { global $app; - + if(isset($app->remoting_lib->primary_id)) { $client_id = $app->remoting_lib->primary_id; } else { $client_id = $app->tform->primary_id; } - + $app->uses('getconf'); $global_config = $app->getconf->get_global_config('sites'); - - if((trim($field_value) == 'web' || preg_match('/^web[0-9]/',$field_value)) && - ($global_config['ftpuser_prefix'] == '[CLIENTNAME]' || - $global_config['ftpuser_prefix'] == '' || - $global_config['shelluser_prefix'] == '[CLIENTNAME]' || - $global_config['shelluser_prefix'] == '' )) { + + if((trim($field_value) == 'web' || preg_match('/^web[0-9]/', $field_value)) && + ($global_config['ftpuser_prefix'] == '[CLIENTNAME]' || + $global_config['ftpuser_prefix'] == '' || + $global_config['shelluser_prefix'] == '[CLIENTNAME]' || + $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"; @@ -89,13 +90,137 @@ return $errmsg."<br>\r\n"; } } - - - - + + + + } - - - - -} \ No newline at end of file + + 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 = ? AND server_id NOT IN ?', $client_id, $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 = ? AND server_id NOT IN ?', $client_id, $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 = ? AND server_id NOT IN ?', $client_id, $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 = ? AND server_id NOT IN ?', $client_id, $field_value); + break; + + case 'xmpp_servers': + $used_servers = $app->db->queryAllRecords('SELECT domain_id FROM xmpp_domain INNER JOIN sys_user ON xmpp_domain.sys_userid = sys_user.userid WHERE client_id = ? AND server_id NOT IN ?', $client_id, $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"; + } + } + } + } + + function check_vat_id ($field_name, $field_value, $validator){ + global $app, $page; + + $vatid = trim($field_value); + if(isset($app->remoting_lib->primary_id)) { + $country = $app->remoting_lib->dataRecord['country']; + } else { + $country = $page->dataRecord['country']; + } + + // check if country is member of EU + $country_details = $app->db->queryOneRecord("SELECT * FROM country WHERE iso = ?", $country); + if($country_details['eu'] == 'y' && $vatid != ''){ + + $vatid = preg_replace('/\s+/', '', $vatid); + $vatid = str_replace(array('.', '-', ','), '', $vatid); + $cc = substr($vatid, 0, 2); + $vn = substr($vatid, 2); + + // Test if the country of the VAT-ID matches the country of the customer + if($country != ''){ + // Greece + if($country == 'GR') $country = 'EL'; + if(strtoupper($cc) != $country){ + $errmsg = $validator['errmsg']; + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } + } + } + + $client = new SoapClient("http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl"); + + if($client){ + $params = array('countryCode' => $cc, 'vatNumber' => $vn); + try{ + $r = $client->checkVat($params); + if($r->valid == true){ + } else { + $errmsg = $validator['errmsg']; + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } + } + + // This foreach shows every single line of the returned information + /* + foreach($r as $k=>$prop){ + echo $k . ': ' . $prop; + } + */ + + } catch(SoapFault $e) { + //echo 'Error, see message: '.$e->faultstring; + switch ($e->faultstring) { + case 'INVALID_INPUT': + $errmsg = $validator['errmsg']; + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } + break; + // the following cases shouldn't be the user's fault, so we return no error + case 'SERVICE_UNAVAILABLE': + case 'MS_UNAVAILABLE': + case 'TIMEOUT': + case 'SERVER_BUSY': + break; + } + } + } else { + // Connection to host not possible, europe.eu down? + // this shouldn't be the user's fault, so we return no error + } + } + } + + +} -- Gitblit v1.9.1