From 5ca959fa688255a8de61f89fe2751eb4d24a6912 Mon Sep 17 00:00:00 2001 From: Florian Schaal <florian@schaal-24.de> Date: Tue, 22 Mar 2016 09:22:07 -0400 Subject: [PATCH] fixed typo --- interface/lib/classes/functions.inc.php | 115 +++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 78 insertions(+), 37 deletions(-) diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index 8a287a4..45c8d9b 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -186,7 +186,8 @@ global $app; if($type == 'IPv4'){ - $regex = "/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/"; +// $regex = "/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/"; + $regex = "/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"; } else { // IPv6 $regex = "/^(\:\:([a-f0-9]{1,4}\:){0,6}?[a-f0-9]{0,4}|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){0,6}?\:\:|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){1,6}?\:\:([a-f0-9]{1,4}\:){1,6}?[a-f0-9]{1,4})(\/\d{1,3})?$/i"; @@ -202,7 +203,7 @@ } $ips = array(); - $results = $app->db->queryAllRecords("SELECT ip_address AS ip, server_id FROM server_ip WHERE ip_type = '".$type."'"); + $results = $app->db->queryAllRecords("SELECT ip_address AS ip, server_id FROM server_ip WHERE ip_type = ?", $type); if(!empty($results) && is_array($results)){ foreach($results as $result){ if(preg_match($regex, $result['ip'])){ @@ -229,39 +230,6 @@ if(preg_match($regex, $result['ip'])) $ips[] = $result['ip']; } } - - /* - $results = $app->db->queryAllRecords("SELECT xfer FROM dns_slave WHERE xfer != ''"); - if(!empty($results) && is_array($results)){ - foreach($results as $result){ - $tmp_ips = explode(',', $result['xfer']); - foreach($tmp_ips as $tmp_ip){ - $tmp_ip = trim($tmp_ip); - if(preg_match($regex, $tmp_ip)) $ips[] = $tmp_ip; - } - } - } - $results = $app->db->queryAllRecords("SELECT xfer FROM dns_soa WHERE xfer != ''"); - if(!empty($results) && is_array($results)){ - foreach($results as $result){ - $tmp_ips = explode(',', $result['xfer']); - foreach($tmp_ips as $tmp_ip){ - $tmp_ip = trim($tmp_ip); - if(preg_match($regex, $tmp_ip)) $ips[] = $tmp_ip; - } - } - } - $results = $app->db->queryAllRecords("SELECT also_notify FROM dns_soa WHERE also_notify != ''"); - if(!empty($results) && is_array($results)){ - foreach($results as $result){ - $tmp_ips = explode(',', $result['also_notify']); - foreach($tmp_ips as $tmp_ip){ - $tmp_ip = trim($tmp_ip); - if(preg_match($regex, $tmp_ip)) $ips[] = $tmp_ip; - } - } - } - */ $results = $app->db->queryAllRecords("SELECT remote_ips FROM web_database WHERE remote_ips != ''"); if(!empty($results) && is_array($results)){ @@ -334,7 +302,7 @@ if($encode == true) { if(function_exists('idn_to_ascii')) { - $domain = idn_to_ascii($domain); + $domain = idn_to_ascii($domain, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46); } elseif(file_exists(ISPC_CLASS_PATH.'/idn/idna_convert.class.php')) { /* use idna class: * @author Matthias Sommerfeld <mso@phlylabs.de> @@ -351,7 +319,7 @@ } } else { if(function_exists('idn_to_utf8')) { - $domain = idn_to_utf8($domain); + $domain = idn_to_utf8($domain, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46); } elseif(file_exists(ISPC_CLASS_PATH.'/idn/idna_convert.class.php')) { /* use idna class: * @author Matthias Sommerfeld <mso@phlylabs.de> @@ -388,6 +356,79 @@ return implode("\n", $domains); } + public function is_allowed_user($username, $restrict_names = false) { + global $app; + + $name_blacklist = array('root','ispconfig','vmail','getmail'); + if(in_array($username,$name_blacklist)) return false; + + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $username) == false) return false; + + if($restrict_names == true && preg_match('/^web\d+$/', $username) == false) return false; + + return true; + } + + public function is_allowed_group($groupname, $restrict_names = false) { + global $app; + + $name_blacklist = array('root','ispconfig','vmail','getmail'); + if(in_array($groupname,$name_blacklist)) return false; + + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $groupname) == false) return false; + + if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false; + + return true; + } + + public function getimagesizefromstring($string){ + if (!function_exists('getimagesizefromstring')) { + $uri = 'data://application/octet-stream;base64,' . base64_encode($string); + return getimagesize($uri); + } else { + return getimagesizefromstring($string); + } + } + + public function password($minLength = 10, $special = false){ + global $app; + + $iteration = 0; + $password = ""; + $maxLength = $minLength + 5; + $length = $this->getRandomInt($minLength, $maxLength); + + while($iteration < $length){ + $randomNumber = (floor(((mt_rand() / mt_getrandmax()) * 100)) % 94) + 33; + if(!$special){ + if (($randomNumber >=33) && ($randomNumber <=47)) { continue; } + if (($randomNumber >=58) && ($randomNumber <=64)) { continue; } + if (($randomNumber >=91) && ($randomNumber <=96)) { continue; } + if (($randomNumber >=123) && ($randomNumber <=126)) { continue; } + } + $iteration++; + $password .= chr($randomNumber); + } + $app->uses('validate_password'); + if($app->validate_password->password_check('', $password, '') !== false) $password = $this->password($minLength, $special); + return $password; + } + + public function getRandomInt($min, $max){ + return floor((mt_rand() / mt_getrandmax()) * ($max - $min + 1)) + $min; + } + + public function generate_customer_no(){ + global $app; + // generate customer no. + $customer_no = mt_rand(100000, 999999); + while($app->db->queryOneRecord("SELECT client_id FROM client WHERE customer_no = ?", $customer_no)) { + $customer_no = mt_rand(100000, 999999); + } + + return $customer_no; + } } ?> -- Gitblit v1.9.1