From 2cb1563f63386b35a69e460051aa9b4a2851d104 Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Wed, 30 May 2012 07:30:44 -0400 Subject: [PATCH] - Added (clickable) placeholders to client messaging function. - Added check so that the client password isn't inserted into the message (for security reasons). --- interface/web/dns/dns_import.php | 179 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 159 insertions(+), 20 deletions(-) diff --git a/interface/web/dns/dns_import.php b/interface/web/dns/dns_import.php index 8ad3275..fdac6ac 100644 --- a/interface/web/dns/dns_import.php +++ b/interface/web/dns/dns_import.php @@ -84,14 +84,14 @@ $app->tpl->setVar("server_id",$server_id_option); // load the list of clients - $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name"; + $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(client.company_name,' :: ',client.contact_name) as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.client_id > 0 ORDER BY sys_group.name"; $clients = $app->db->queryAllRecords($sql); $client_select = ''; if($_SESSION["s"]["user"]["typ"] == 'admin') $client_select .= "<option value='0'></option>"; if(is_array($clients)) { foreach( $clients as $client) { $selected = ($client["groupid"] == $sys_groupid)?'SELECTED':''; - $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n"; + $client_select .= "<option value='$client[groupid]' $selected>$client[name] :: $client[contactname]</option>\r\n"; } } @@ -102,23 +102,27 @@ // Get the limits of the client $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT client.client_id, contact_name FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + $client = $app->db->queryOneRecord("SELECT client.client_id, client.contact_name, CONCAT(client.company_name,' :: ',client.contact_name) as contactname, sys_group.name FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); // load the list of clients - $sql = "SELECT groupid, name FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']; + $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(client.company_name,' :: ',client.contact_name) as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']; $clients = $app->db->queryAllRecords($sql); $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']); - $client_select = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</option>'; + $client_select = '<option value="'.$tmp['groupid'].'">'.$client['name'].' :: '.$client['contactname'].'</option>'; if(is_array($clients)) { foreach( $clients as $client) { $selected = ($client["groupid"] == $sys_groupid)?'SELECTED':''; - $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n"; + $client_select .= "<option value='$client[groupid]' $selected>$client[name] :: $client[contactname]</option>\r\n"; } } $app->tpl->setVar("client_group_id",$client_select); } + +$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dns_import.lng'; +include($lng_file); +$app->tpl->setVar($wb); // Import the zone-file //if(1=="1") @@ -195,7 +199,27 @@ } // TTL if($parts[0] == '$ttl'){ - $soa['ttl'] = intval($parts[1]); + $time_format = strtolower(substr($parts[1],-1)); + switch ($time_format) { + case 's': + $soa['ttl'] = intval(substr($parts[1],0,-1)); + break; + case 'm': + $soa['ttl'] = intval(substr($parts[1],0,-1)) * 60; + break; + case 'h': + $soa['ttl'] = intval(substr($parts[1],0,-1)) * 3600; + break; + case 'd': + $soa['ttl'] = intval(substr($parts[1],0,-1)) * 86400; + break; + case 'w': + $soa['ttl'] = intval(substr($parts[1],0,-1)) * 604800; + break; + default: + $soa['ttl'] = intval($parts[1]); + } + unset($time_format); } // SOA if(in_array("soa", $parts)){ @@ -212,13 +236,101 @@ // SERIAL if($i == ($soa_array_key + 1)) $soa['serial'] = intval($parts[0]); // REFRESH - if($i == ($soa_array_key + 2)) $soa['refresh'] = intval($parts[0]); + if($i == ($soa_array_key + 2)){ + $time_format = strtolower(substr($parts[0],-1)); + switch ($time_format) { + case 's': + $soa['refresh'] = intval(substr($parts[0],0,-1)); + break; + case 'm': + $soa['refresh'] = intval(substr($parts[0],0,-1)) * 60; + break; + case 'h': + $soa['refresh'] = intval(substr($parts[0],0,-1)) * 3600; + break; + case 'd': + $soa['refresh'] = intval(substr($parts[0],0,-1)) * 86400; + break; + case 'w': + $soa['refresh'] = intval(substr($parts[0],0,-1)) * 604800; + break; + default: + $soa['refresh'] = intval($parts[0]); + } + unset($time_format); + } // RETRY - if($i == ($soa_array_key + 3)) $soa['retry'] = intval($parts[0]); + if($i == ($soa_array_key + 3)){ + $time_format = strtolower(substr($parts[0],-1)); + switch ($time_format) { + case 's': + $soa['retry'] = intval(substr($parts[0],0,-1)); + break; + case 'm': + $soa['retry'] = intval(substr($parts[0],0,-1)) * 60; + break; + case 'h': + $soa['retry'] = intval(substr($parts[0],0,-1)) * 3600; + break; + case 'd': + $soa['retry'] = intval(substr($parts[0],0,-1)) * 86400; + break; + case 'w': + $soa['retry'] = intval(substr($parts[0],0,-1)) * 604800; + break; + default: + $soa['retry'] = intval($parts[0]); + } + unset($time_format); + } // EXPIRE - if($i == ($soa_array_key + 4)) $soa['expire'] = intval($parts[0]); + if($i == ($soa_array_key + 4)){ + $time_format = strtolower(substr($parts[0],-1)); + switch ($time_format) { + case 's': + $soa['expire'] = intval(substr($parts[0],0,-1)); + break; + case 'm': + $soa['expire'] = intval(substr($parts[0],0,-1)) * 60; + break; + case 'h': + $soa['expire'] = intval(substr($parts[0],0,-1)) * 3600; + break; + case 'd': + $soa['expire'] = intval(substr($parts[0],0,-1)) * 86400; + break; + case 'w': + $soa['expire'] = intval(substr($parts[0],0,-1)) * 604800; + break; + default: + $soa['expire'] = intval($parts[0]); + } + unset($time_format); + } // MINIMUM - if($i == ($soa_array_key + 5)) $soa['minimum'] = intval($parts[0]); + if($i == ($soa_array_key + 5)){ + $time_format = strtolower(substr($parts[0],-1)); + switch ($time_format) { + case 's': + $soa['minimum'] = intval(substr($parts[0],0,-1)); + break; + case 'm': + $soa['minimum'] = intval(substr($parts[0],0,-1)) * 60; + break; + case 'h': + $soa['minimum'] = intval(substr($parts[0],0,-1)) * 3600; + break; + case 'd': + $soa['minimum'] = intval(substr($parts[0],0,-1)) * 86400; + break; + case 'w': + $soa['minimum'] = intval(substr($parts[0],0,-1)) * 604800; + break; + default: + $soa['minimum'] = intval($parts[0]); + } + unset($time_format); + } // RESOURCE RECORDS if($i > ($soa_array_key + 5)){ if(substr($parts[0],-1) == '.' || $parts[0] == '@' || ($parts[0] != 'a' && $parts[0] != 'aaaa' && $parts[0] != 'ns' && $parts[0] != 'cname' && $parts[0] != 'hinfo' && $parts[0] != 'mx' && $parts[0] != 'naptr' && $parts[0] != 'ptr' && $parts[0] != 'rp' && $parts[0] != 'srv' && $parts[0] != 'txt')){ @@ -256,6 +368,12 @@ $dns_rr[$r]['aux'] = intval($parts[$pkey+1]); $dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+2)); break; + case 'txt': + $dns_rr[$r]['aux'] = 0; + $dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+1)); + if(substr($dns_rr[$r]['data'],0,1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'],1); + if(substr($dns_rr[$r]['data'],-1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'],0,-1); + break; default: $dns_rr[$r]['aux'] = 0; $dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+1)); @@ -273,6 +391,12 @@ case 'srv': $dns_rr[$r]['aux'] = intval($parts[$pkey+1]); $dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+2)); + break; + case 'txt': + $dns_rr[$r]['aux'] = 0; + $dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+1)); + if(substr($dns_rr[$r]['data'],0,1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'],1); + if(substr($dns_rr[$r]['data'],-1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'],0,-1); break; default: $dns_rr[$r]['aux'] = 0; @@ -292,6 +416,12 @@ $dns_rr[$r]['aux'] = intval($parts[$pkey+1]); $dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+2)); break; + case 'txt': + $dns_rr[$r]['aux'] = 0; + $dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+1)); + if(substr($dns_rr[$r]['data'],0,1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'],1); + if(substr($dns_rr[$r]['data'],-1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'],0,-1); + break; default: $dns_rr[$r]['aux'] = 0; $dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+1)); @@ -309,6 +439,12 @@ case 'srv': $dns_rr[$r]['aux'] = intval($parts[$pkey+1]); $dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+2)); + break; + case 'txt': + $dns_rr[$r]['aux'] = 0; + $dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+1)); + if(substr($dns_rr[$r]['data'],0,1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'],1); + if(substr($dns_rr[$r]['data'],-1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'],0,-1); break; default: $dns_rr[$r]['aux'] = 0; @@ -329,6 +465,12 @@ case 'srv': $dns_rr[$r]['aux'] = intval($parts[$pkey+1]); $dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+2)); + break; + case 'txt': + $dns_rr[$r]['aux'] = 0; + $dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+1)); + if(substr($dns_rr[$r]['data'],0,1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'],1); + if(substr($dns_rr[$r]['data'],-1) == '"') $dns_rr[$r]['data'] = substr($dns_rr[$r]['data'],0,-1); break; default: $dns_rr[$r]['aux'] = 0; @@ -510,23 +652,20 @@ $dns_rr_id = $app->db->datalogInsert('dns_rr', $insert_data, 'id'); } } - $msg .= $app->lng('zone_file_successfully_imported_txt'); + $msg .= $wb['zone_file_successfully_imported_txt']; } else { - $error .= $app->lng('error_no_valid_zone_file_txt'); + $error .= $wb['error_no_valid_zone_file_txt']; } //header('Location: /dns/dns_soa_edit.php?id='.$dns_soa_id); +} else { + if(isset($_FILES['file']['name'])) { + $error = $wb['no_file_uploaded_error']; + } } $app->tpl->setVar('msg',$msg); $app->tpl->setVar('error',$error); - -$app->tpl->setVar("title",'Import Zone Files'); -$app->tpl->setVar("zonefile_to_import_txt",$app->lng('zonefile_to_import_txt')); - -$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dns_wizard.lng'; -include($lng_file); -$app->tpl->setVar($wb); $app->tpl_defaults(); $app->tpl->pparse(); -- Gitblit v1.9.1