From d22277878254cf33fd63ca1bf12b215f4e030a27 Mon Sep 17 00:00:00 2001 From: Marius Burkard <m.burkard@pixcept.de> Date: Mon, 04 Jan 2016 05:12:49 -0500 Subject: [PATCH] - merged different fixes and updates from foreign branches --- interface/lib/classes/functions.inc.php | 443 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 356 insertions(+), 87 deletions(-) diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index 29feffd..92f6f17 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -61,52 +61,6 @@ $app->ispcmail->send($to); $app->ispcmail->finish(); - /* left in here just for the case... - if($filepath != '') { - if(!file_exists($filepath)) $app->error("Mail attachement does not exist ".$filepath); - - $content = file_get_contents($filepath); - $content = chunk_split(base64_encode($content)); - $uid = strtoupper(md5(uniqid(time()))); - $subject = "=?utf-8?B?".base64_encode($subject)."?="; - - if($filename == '') { - $path_parts = pathinfo($filepath); - $filename = $path_parts["basename"]; - unset($path_parts); - } - - $header = "Return-Path: $from\nFrom: $from\nReply-To: $from\n"; - if($cc != '') $header .= "Cc: $cc\n"; - if($bcc != '') $header .= "Bcc: $bcc\n"; - $header .= "MIME-Version: 1.0\n"; - $header .= "Content-Type: multipart/mixed; boundary=$uid\n"; - - $header .= "--$uid\n"; - $header .= "Content-Type: text/plain;\n\tcharset=\"UTF-8\"\n"; - $header .= "Content-Transfer-Encoding: 8bit\n\n"; - $header .= "$text\n"; - - $header .= "--$uid\n"; - $header .= "Content-Type: $filetype; name=\"$filename\"\n"; - - $header .= "Content-Transfer-Encoding: base64\n"; - $header .= "Content-Disposition: attachment; filename=\"$filename\"\n\n"; - $header .= "$content\n"; - - $header .= "--$uid--"; - - mail($to, $subject, "", $header); - } else { - $header = "From: $from\nReply-To: $from\n"; - if($cc != '') $header .= "Cc: $cc\n"; - if($bcc != '') $header .= "Bcc: $bcc\n"; - $header .= "Content-Type: text/plain;\n\tcharset=\"UTF-8\"\n"; - $header .= "Content-Transfer-Encoding: 8bit\n\n"; - $subject = "=?utf-8?B?".base64_encode($subject)."?="; - mail($to, $subject, $text, $header); - } - */ return true; } @@ -232,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"; @@ -248,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'])){ @@ -275,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)){ @@ -352,11 +274,21 @@ } } + /** + * Function to change bytes to kB, MB, GB or TB + * @param int $size - size in bytes + * @param int precicion - after-comma-numbers (default: 2) + * @return string - formated bytes + */ + public function formatBytes($size, $precision = 2) { + $base=log($size)/log(1024); + $suffixes=array('', ' kB', ' MB', ' GB', ' TB'); + return round(pow(1024, $base-floor($base)), $precision).$suffixes[floor($base)]; + } + /** IDN converter wrapper. * all converter classes should be placed in ISPC_CLASS_PATH.'/idn/' */ - - private function _idn_encode_decode($domain, $encode = true) { if($domain == '') return ''; if(preg_match('/^[0-9\.]+$/', $domain)) return $domain; // may be an ip address - anyway does not need to bee encoded @@ -370,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> @@ -387,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> @@ -430,7 +362,7 @@ $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($username,$name_blacklist)) return false; - if(preg_match('/^[\w\.\-]{0,32}$/', $username) == false) 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; @@ -443,12 +375,349 @@ $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($groupname,$name_blacklist)) return false; - if(preg_match('/^[\w\.\-]{0,32}$/', $groupname) == false) 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; + } + + public function generate_activation_code(){ + + $activation_code = str_pad(mt_rand(0, 99999999), 8, '0', STR_PAD_LEFT); + + return $activation_code; + } + + public function client_activate($client_id){ + global $app, $conf; + + if(!is_file(ISPC_WEB_PATH.'/robot/lib/robot_config.inc.php')) return false; + include(ISPC_WEB_PATH.'/robot/lib/robot_config.inc.php'); + + $context = stream_context_create(array( + 'ssl' => array( + 'verify_peer' => false, + 'verify_peer_name' => false, + ) + )); + + $soap_client = new SoapClient(null, array('location' => $robot_conf['soap']['soap_location'], + 'uri' => $robot_conf['soap']['soap_uri'], + 'trace' => 1, + 'exceptions' => 1, + 'stream_context' => $context)); + + + try { + if($session_id = $soap_client->login($robot_conf['soap']['username'] , $robot_conf['soap']['password'])) { + //echo 'Logged successfull. Session ID:'.$session_id.'<br />'; + } + $error = ''; + $client_record = $soap_client->client_get($session_id, $client_id); + + $client_record['password'] = $this->password(); + if(trim($client_record['customer_no']) == '') $client_record['customer_no'] = $this->generate_customer_no(); + $client_record['username'] = 'c'.$client_record['customer_no']; + //die($client_record['customer_no']); + //$client_record['locked'] = 'n'; + $client_record['canceled'] = 'n'; + $soap_client->client_update($session_id, $client_id, 0, $client_record); + + $app->db->query("UPDATE client SET validation_status = 'accept', activation_code = '' WHERE client_id = ".$client_id); + + $activation_letter_filename = ISPC_ROOT_PATH.'/pdf/activation_letters/c'.$client_id.'-'.$client_record['activation_code'].'.pdf'; + if(is_file($activation_letter_filename)) unlink($activation_letter_filename); + + $webdetails['ispconfiguser'] = $client_record['username']; + $webdetails['ispconfigpassword'] = $client_record['password']; + $webdetails['customer_no'] = $client_record['customer_no']; + $webdetails['contact'] = ($client_record['contact_firstname'] != ''? $client_record['contact_firstname'].' ' : '').$client_record['contact_name']; + $webdetails['salutation_de'] = ($client_record['gender'] == 'f'? 'Frau' : 'Herr'); + $webdetails['salutation_en'] = ($client_record['gender'] == 'f'? 'Mrs.' : 'Mr.'); + $webdetails['ispconfigurl'] = 'http'.($_SERVER['HTTPS'] == 'on'? 's' : '').'://'.$_SERVER['HTTP_HOST']; + $webdetails['signature_de'] = $robot_conf['textbaustein']['emailfooter']; + $webdetails['signature_en'] = $robot_conf['textbaustein_en']['emailfooter']; + + if($error == ''){ + // send email with login details + $invoice_client_settings = $app->db->queryOneRecord("SELECT * FROM invoice_client_settings WHERE client_id = ".intval($client_id)); + $company = $app->db->queryOneRecord("SELECT * FROM invoice_company WHERE invoice_company_id = ".$invoice_client_settings['invoice_company_id']); + + $subject = '['.$company['company_name_short'].'] Zugangsdaten zu unserem Kundeninterface / Login details for our customer interface'; + + $app->uses('tpl'); + $tpl = new tpl; + $tpl->newTemplate(ISPC_WEB_PATH."/client/templates/ispconfig_login.master"); + $tpl->setVar($webdetails); + $message = $tpl->grab(); + + if($robot_conf['production_mode']){ + $app->functions->mail(trim($client_record['email']), $subject, $message, 'support@timmehosting.de', '', 'application/pdf', '', '', 'f.timme@timmehosting.de,hetzner@timmehosting.de', 'TimmeHosting.de Support'); + + $app->db->query("INSERT INTO `th_robot_message` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `client_id`, `subject`, `message`, `message_sent_date`, `message_sent_tstamp`, `email_from`, `email_to`, `email_to_bcc`) VALUES(1, 1, 'riud', 'riud', '', ".intval($client_id).", '".$app->db->quote($subject)."', '".$app->db->quote($message)."', '".date('Y-m-d')."', ".time().", 'support@timmehosting.de', '".trim($client_record['email'])."', 'f.timme@timmehosting.de,hetzner@timmehosting.de')"); + } + } + + if($soap_client->logout($session_id)) { + //echo 'Logged out.<br />'; + } + + } catch (SoapFault $e) { + //$error .= $client->__getLastResponse(); + $error .= 'SOAP Error: '.$e->getMessage(); + } + } + + public function client_activation_failed($client){ + global $app, $conf; + + if(!is_file(ISPC_WEB_PATH.'/robot/lib/robot_config.inc.php')) return false; + include(ISPC_WEB_PATH.'/robot/lib/robot_config.inc.php'); + + $client_id = intval($client['client_id']); + $webdetails['contact'] = ($client['contact_firstname'] != ''? $client['contact_firstname'].' ' : '').$client['contact_name']; + $webdetails['salutation_de'] = ($client['gender'] == 'f'? 'Frau' : 'Herr'); + $webdetails['salutation_en'] = ($client['gender'] == 'f'? 'Mrs.' : 'Mr.'); + $webdetails['signature_de'] = $robot_conf['textbaustein']['emailfooter']; + $webdetails['signature_en'] = $robot_conf['textbaustein_en']['emailfooter']; + + + // send email with login details + $invoice_client_settings = $app->db->queryOneRecord("SELECT * FROM invoice_client_settings WHERE client_id = ".intval($client_id)); + $company = $app->db->queryOneRecord("SELECT * FROM invoice_company WHERE invoice_company_id = ".$invoice_client_settings['invoice_company_id']); + $subject = '['.$company['company_name_short'].'] Aktivierung Ihres Kundenaccounts fehlgeschlagen / Activation of your customer account failed'; + + $app->uses('tpl'); + $tpl = new tpl; + $tpl->newTemplate(ISPC_WEB_PATH."/client/templates/ispconfig_client_activation_failed.master"); + $tpl->setVar($webdetails); + $message = $tpl->grab(); + + if($robot_conf['production_mode']){ + $app->functions->mail(trim($client['email']), $subject, $message, 'support@timmehosting.de', '', 'application/pdf', '', '', 'f.timme@timmehosting.de,hetzner@timmehosting.de', 'TimmeHosting.de Support'); + + $app->db->query("INSERT INTO `th_robot_message` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `client_id`, `subject`, `message`, `message_sent_date`, `message_sent_tstamp`, `email_from`, `email_to`, `email_to_bcc`) VALUES(1, 1, 'riud', 'riud', '', ".intval($client_id).", '".$app->db->quote($subject)."', '".$app->db->quote($message)."', '".date('Y-m-d')."', ".time().", 'support@timmehosting.de', '".trim($client['email'])."', 'f.timme@timmehosting.de,hetzner@timmehosting.de')"); + } + } + + public function client_review($client_id){ + global $app, $conf; + + if(!is_file(ISPC_WEB_PATH.'/robot/lib/robot_config.inc.php')) return false; + include(ISPC_WEB_PATH.'/robot/lib/robot_config.inc.php'); + + $context = stream_context_create(array( + 'ssl' => array( + 'verify_peer' => false, + 'verify_peer_name' => false, + ) + )); + + $soap_client = new SoapClient(null, array('location' => $robot_conf['soap']['soap_location'], + 'uri' => $robot_conf['soap']['soap_uri'], + 'trace' => 1, + 'exceptions' => 1, + 'stream_context' => $context)); + + try { + if($session_id = $soap_client->login($robot_conf['soap']['username'] , $robot_conf['soap']['password'])) { + //echo 'Logged successfull. Session ID:'.$session_id.'<br />'; + } + $error = ''; + $client_record = $soap_client->client_get($session_id, $client_id); + + if(trim($client_record['customer_no']) == ''){ + $client_record['customer_no'] = $this->generate_customer_no(); + $soap_client->client_update($session_id, $client_id, 0, $client_record); + } + + $activation_code = $this->generate_activation_code(); + $app->db->query("UPDATE client SET activation_code = '".$activation_code."'".($client_record['validation_status'] != 'review'? ", validation_status = 'review'" : "")." WHERE client_id = ".$client_id); + + $webdetails['customer_no'] = $client_record['customer_no']; + $webdetails['contact'] = ($client_record['contact_firstname'] != ''? $client_record['contact_firstname'].' ' : '').$client_record['contact_name']; + $webdetails['salutation_de'] = ($client_record['gender'] == 'f'? 'Frau' : 'Herr'); + $webdetails['salutation_en'] = ($client_record['gender'] == 'f'? 'Mrs.' : 'Mr.'); + $webdetails['signature_de'] = $robot_conf['textbaustein']['emailfooter']; + $webdetails['signature_en'] = $robot_conf['textbaustein_en']['emailfooter']; + $webdetails['email'] = $client_record['email']; + include ISPC_LIB_PATH.'/lang/'.strtolower($client_record['language']).'.lng'; + $webdetails['latest_activation_date'] = date($wb['conf_format_dateshort'], $client_record['created_at'] + 14 * 86400); + + if($error == ''){ + // send email with login details + $invoice_client_settings = $app->db->queryOneRecord("SELECT * FROM invoice_client_settings WHERE client_id = ".intval($client_id)); + $company = $app->db->queryOneRecord("SELECT * FROM invoice_company WHERE invoice_company_id = ".$invoice_client_settings['invoice_company_id']); + + $subject = '['.$company['company_name_short'].'] Aktivierung Ihres Kundenkontos / Activation of your customer account'; + $webdetails['company_name_short'] = $company['company_name_short']; + + $app->uses('tpl'); + $tpl = new tpl; + $tpl->newTemplate(ISPC_WEB_PATH."/client/templates/ispconfig_client_activation_email.master"); + $tpl->setVar($webdetails); + $message = $tpl->grab(); + + if($robot_conf['production_mode']){ + $app->functions->mail(trim($client_record['email']), $subject, $message, 'support@timmehosting.de', '', 'application/pdf', '', '', 'f.timme@timmehosting.de,hetzner@timmehosting.de', 'TimmeHosting.de Support'); + + $app->db->query("INSERT INTO `th_robot_message` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `client_id`, `subject`, `message`, `message_sent_date`, `message_sent_tstamp`, `email_from`, `email_to`, `email_to_bcc`) VALUES(1, 1, 'riud', 'riud', '', ".intval($client_id).", '".$app->db->quote($subject)."', '".$app->db->quote($message)."', '".date('Y-m-d')."', ".time().", 'support@timmehosting.de', '".trim($client_record['email'])."', 'f.timme@timmehosting.de,hetzner@timmehosting.de')"); + } + } + + // create activation letter pdf + $app->uses('pdf'); + $app->pdf->AliasNbPages(); + $app->pdf->createActivationLetter($client_id); + + $pdf_content = $app->pdf->Output('doc.pdf', 'S'); + + $activation_letter_filename = ISPC_ROOT_PATH.'/pdf/activation_letters/c'.$client_id.'-'.$activation_code.'.pdf'; + file_put_contents($activation_letter_filename, $pdf_content); + + if(is_file($activation_letter_filename)){ + include(ISPC_WEB_PATH.'/billing/lib/onlinebrief24/Net/SFTP.php'); + $sftp = new Net_SFTP('api.letterei-onlinebrief.de'); + if (!$sftp->login($company['onlinebrief24_user'], $company['onlinebrief24_password'])) { + $error_msg = $app->lng('onlinebrief24_login_failed_txt'); + $app->error($error_msg); + } + $upload_filename = ($company['onlinebrief24_print'] == 'coloured'? '1' : '0').'00'.($client_record['country'] == 'DE'? '1' : '0').'000000000-c'.$client_id.'-'.$activation_code.'.pdf'; + //die($upload_filename); + $sftp->chdir('upload/api'); + $sftp->put($upload_filename, $activation_letter_filename, NET_SFTP_LOCAL_FILE); + } + + if($soap_client->logout($session_id)) { + //echo 'Logged out.<br />'; + } + + } catch (SoapFault $e) { + //$error .= $client->__getLastResponse(); + $error .= 'SOAP Error: '.$e->getMessage(); + } + } + + public function client_reject($client_id){ + global $app, $conf; + + if(!is_file(ISPC_WEB_PATH.'/robot/lib/robot_config.inc.php')) return false; + include(ISPC_WEB_PATH.'/robot/lib/robot_config.inc.php'); + + $context = stream_context_create(array( + 'ssl' => array( + 'verify_peer' => false, + 'verify_peer_name' => false, + ) + )); + + $soap_client = new SoapClient(null, array('location' => $robot_conf['soap']['soap_location'], + 'uri' => $robot_conf['soap']['soap_uri'], + 'trace' => 1, + 'exceptions' => 1, + 'stream_context' => $context)); + + try { + if($session_id = $soap_client->login($robot_conf['soap']['username'] , $robot_conf['soap']['password'])) { + //echo 'Logged successfull. Session ID:'.$session_id.'<br />'; + } + $error = ''; + $client_record = $soap_client->client_get($session_id, $client_id); + + $client_record['locked'] = 'y'; + $client_record['canceled'] = 'y'; + $soap_client->client_update($session_id, $client_id, 0, $client_record); + + $app->db->query("UPDATE client SET validation_status = 'reject', activation_code = '' WHERE client_id = ".$client_id); + $app->db->query("DELETE FROM th_order WHERE client_id = ".$client_id); + + $activation_letter_filename = ISPC_ROOT_PATH.'/pdf/activation_letters/c'.$client_id.'-'.$client_record['activation_code'].'.pdf'; + if(is_file($activation_letter_filename)) unlink($activation_letter_filename); + + $webdetails['contact'] = ($client_record['contact_firstname'] != ''? $client_record['contact_firstname'].' ' : '').$client_record['contact_name']; + $webdetails['salutation_de'] = ($client_record['gender'] == 'f'? 'Frau' : 'Herr'); + $webdetails['salutation_en'] = ($client_record['gender'] == 'f'? 'Mrs.' : 'Mr.'); + $webdetails['signature_de'] = $robot_conf['textbaustein']['emailfooter']; + $webdetails['signature_en'] = $robot_conf['textbaustein_en']['emailfooter']; + + if($error == ''){ + // send email with login details + $invoice_client_settings = $app->db->queryOneRecord("SELECT * FROM invoice_client_settings WHERE client_id = ".intval($client_id)); + $company = $app->db->queryOneRecord("SELECT * FROM invoice_company WHERE invoice_company_id = ".$invoice_client_settings['invoice_company_id']); + + $subject = '['.$company['company_name_short'].'] Sperrung Ihres Kundenaccounts / Suspension of your customer account'; + + $app->uses('tpl'); + $tpl = new tpl; + $tpl->newTemplate(ISPC_WEB_PATH."/client/templates/ispconfig_client_rejection.master"); + $tpl->setVar($webdetails); + $message = $tpl->grab(); + + if($robot_conf['production_mode']){ + $app->functions->mail(trim($client_record['email']), $subject, $message, 'support@timmehosting.de', '', 'application/pdf', '', '', 'f.timme@timmehosting.de,hetzner@timmehosting.de', 'TimmeHosting.de Support'); + + $app->db->query("INSERT INTO `th_robot_message` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `client_id`, `subject`, `message`, `message_sent_date`, `message_sent_tstamp`, `email_from`, `email_to`, `email_to_bcc`) VALUES(1, 1, 'riud', 'riud', '', ".intval($client_id).", '".$app->db->quote($subject)."', '".$app->db->quote($message)."', '".date('Y-m-d')."', ".time().", 'support@timmehosting.de', '".trim($client_record['email'])."', 'f.timme@timmehosting.de,hetzner@timmehosting.de')"); + } + } + + if($soap_client->logout($session_id)) { + //echo 'Logged out.<br />'; + } + + } catch (SoapFault $e) { + //$error .= $client->__getLastResponse(); + $error .= 'SOAP Error: '.$e->getMessage(); + } + } } -- Gitblit v1.9.1