| | |
| | | |
| | | |
| | | // Loading the template |
| | | $app->uses('tpl,validate_dns'); |
| | | $app->uses('tpl,validate_dns,tform'); |
| | | $app->tpl->newTemplate("form.tpl.htm"); |
| | | $app->tpl->setInclude('content_tpl', 'templates/dns_wizard.htm'); |
| | | $app->load_language_file('/web/dns/lib/lang/'.$_SESSION['s']['language'].'_dns_wizard.lng'); |
| | | |
| | | // Check if dns record limit has been reached. We will check only users, not admins |
| | | if($_SESSION["s"]["user"]["typ"] == 'user') { |
| | | $app->tform->formDef['db_table_idx'] = 'id'; |
| | | $app->tform->formDef['db_table'] = 'dns_soa'; |
| | | if(!$app->tform->checkClientLimit('limit_dns_zone')) { |
| | | $app->error($app->lng('limit_dns_zone_txt')); |
| | | } |
| | | if(!$app->tform->checkResellerLimit('limit_dns_zone')) { |
| | | $app->error('Reseller: '.$app->lng('limit_dns_zone_txt')); |
| | | } |
| | | } |
| | | |
| | | // import variables |
| | | $template_id = (isset($_POST['template_id']))?$app->functions->intval($_POST['template_id']):0; |
| | |
| | | } |
| | | |
| | | if($_POST['create'] == 1) { |
| | | |
| | | |
| | | //* CSRF Check |
| | | $app->auth->csrf_token_check(); |
| | | |
| | | $error = ''; |
| | | |
| | | if ($post_server_id) |
| | |
| | | elseif(isset($_POST['ns2']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z0-9]{2,30}$/', $_POST['ns2'])) $error .= $app->lng('error_ns2_regex').'<br />'; |
| | | |
| | | if(isset($_POST['email']) && $_POST['email'] == '') $error .= $app->lng('error_email_empty').'<br />'; |
| | | elseif(isset($_POST['email']) && !preg_match('/^\w+[\w.-]*\w+@\w+[\w.-]*\w+\.[a-z0-9\-]{2,30}$/i', $_POST['email'])) $error .= $app->lng('error_email_regex').'<br />'; |
| | | elseif(isset($_POST['email']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) $error .= $app->lng('error_email_regex').'<br />'; |
| | | |
| | | // make sure that the record belongs to the client group and not the admin group when admin inserts it |
| | | if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($_POST['client_group_id'])) { |
| | |
| | | if($_POST['ns1'] != '') $tpl_content = str_replace('{NS1}', $_POST['ns1'], $tpl_content); |
| | | if($_POST['ns2'] != '') $tpl_content = str_replace('{NS2}', $_POST['ns2'], $tpl_content); |
| | | if($_POST['email'] != '') $tpl_content = str_replace('{EMAIL}', $_POST['email'], $tpl_content); |
| | | $enable_dnssec = (($_POST['dnssec'] == 'Y') ? 'Y' : 'N'); |
| | | if(isset($_POST['dkim']) && preg_match('/^[\w\.\-\/]{2,255}\.[a-zA-Z0-9\-]{2,30}[\.]{0,1}$/', $_POST['domain'])) { |
| | | $sql = $app->db->queryOneRecord("SELECT dkim_public, dkim_selector FROM mail_domain WHERE domain = ? AND dkim = 'y' AND ".$app->tform->getAuthSQL('r'), $_POST['domain']); |
| | | $public_key = $sql['dkim_public']; |
| | |
| | | $tpl_rows = explode("\n", $tpl_content); |
| | | $section = ''; |
| | | $vars = array(); |
| | | $vars['xfer']=''; |
| | | $dns_rr = array(); |
| | | foreach($tpl_rows as $row) { |
| | | $row = trim($row); |
| | |
| | | "active" => 'Y', |
| | | "xfer" => $xfer, |
| | | "also_notify" => $also_notify, |
| | | "update_acl" => $update_acl |
| | | "update_acl" => $update_acl, |
| | | "dnssec_wanted" => $enable_dnssec |
| | | ); |
| | | $dns_soa_id = $app->db->datalogInsert('dns_soa', $insert_data, 'id'); |
| | | |
| | |
| | | |
| | | $app->tpl->setVar("title", 'DNS Wizard'); |
| | | |
| | | //* SET csrf token |
| | | $csrf_token = $app->auth->csrf_token_get('dns_wizard'); |
| | | $app->tpl->setVar('_csrf_id',$csrf_token['csrf_id']); |
| | | $app->tpl->setVar('_csrf_key',$csrf_token['csrf_key']); |
| | | |
| | | $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dns_wizard.lng'; |
| | | include $lng_file; |
| | | $app->tpl->setVar($wb); |