| @@ -63,14 +63,15 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| */ | */ | ||||
| $form["title"] = "Baicon, queso y Ftp con BBDD"; | |||||
| $form["title"] = "Crear BBDD y FTP"; | |||||
| $form["description"] = ""; | $form["description"] = ""; | ||||
| $form["name"] = "ftp_bd_service"; | $form["name"] = "ftp_bd_service"; | ||||
| $form["action"] = "ftp_bd_service.php"; | $form["action"] = "ftp_bd_service.php"; | ||||
| $form["db_table"] = "server"; | $form["db_table"] = "server"; | ||||
| $form["db_table_idx"] = "server_id"; | $form["db_table_idx"] = "server_id"; | ||||
| $form["db_history"] = "no"; | |||||
| $form["tab_default"] = "client"; | |||||
| $form["db_history"] = "yes"; | |||||
| $form["tab_default"] = "database_user"; | |||||
| //$form["list_default"] = "database_user_list.php"; | |||||
| $form["auth"] = 'yes'; // yes / no | $form["auth"] = 'yes'; // yes / no | ||||
| $form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user | $form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user | ||||
| @@ -79,35 +80,11 @@ $form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, | |||||
| $form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete | $form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete | ||||
| $form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete | $form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete | ||||
| $form["tabs"]['client'] = array( | |||||
| 'title' => "Ftp vs BBDD", | |||||
| 'description' => 'Create domain, mail domain, site, database and ftp/ssh', | |||||
| $form["tabs"]['database_user'] = array ( | |||||
| 'title' => "Altas", | |||||
| 'width' => 100, | 'width' => 100, | ||||
| 'template' => "templates/ftp_bd_service.htm", | 'template' => "templates/ftp_bd_service.htm", | ||||
| 'fields' => array ( | 'fields' => array ( | ||||
| 'domain' => array ( | |||||
| 'datatype' => 'VARCHAR', | |||||
| 'formtype' => 'TEXT', | |||||
| 'filters' => array( | |||||
| 0 => array( 'event' => 'SAVE', | |||||
| 'type' => 'IDNTOASCII'), | |||||
| 1 => array( 'event' => 'SHOW', | |||||
| 'type' => 'IDNTOUTF8'), | |||||
| 2 => array( 'event' => 'SAVE', | |||||
| 'type' => 'TOLOWER') | |||||
| ), | |||||
| 'validators' => array ( | |||||
| 0 => array ( 'type' => 'NOTEMPTY', | |||||
| 'errmsg'=> 'domain_error_empty'), | |||||
| 2 => array ( 'type' => 'REGEX', | |||||
| 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,30}$/', | |||||
| 'errmsg'=> 'domain_error_regex'), | |||||
| ), | |||||
| 'default' => '', | |||||
| 'value' => '', | |||||
| 'width' => '30', | |||||
| 'maxlength' => '255' | |||||
| ), | |||||
| 'client_id' => array ( | 'client_id' => array ( | ||||
| 'datatype' => 'INTEGER', | 'datatype' => 'INTEGER', | ||||
| 'formtype' => 'SELECT', | 'formtype' => 'SELECT', | ||||
| @@ -119,112 +96,42 @@ $form["tabs"]['client'] = array( | |||||
| ), | ), | ||||
| 'value' => '' | 'value' => '' | ||||
| ), | ), | ||||
| 'template_id' => array( | |||||
| 'parent_domain_id' => array ( | |||||
| 'datatype' => 'INTEGER', | 'datatype' => 'INTEGER', | ||||
| 'formtype' => 'SELECT', | 'formtype' => 'SELECT', | ||||
| 'default' => '', | 'default' => '', | ||||
| 'datasource' => array ( 'type' => 'SQL', | 'datasource' => array ( 'type' => 'SQL', | ||||
| 'querystring' => 'SELECT template_id, template_name FROM wizard_template WHERE {AUTHSQL} ORDER BY template_name', | |||||
| 'keyfield'=> 'template_id', | |||||
| 'valuefield'=> 'template_name' | |||||
| 'querystring' => "SELECT web_domain.domain_id, CONCAT(web_domain.domain, ' :: ', server.server_name) AS parent_domain FROM web_domain, server WHERE web_domain.type = 'vhost' AND web_domain.server_id = server.server_id AND {AUTHSQL::web_domain} ORDER BY web_domain.domain", | |||||
| 'keyfield'=> 'domain_id', | |||||
| 'valuefield'=> 'parent_domain' | |||||
| ), | ), | ||||
| 'value' => '', | |||||
| ), | |||||
| 'db' => array ( | |||||
| 'datatype' => 'VARCHAR', | |||||
| 'formtype' => 'CHECKBOX', | |||||
| 'default' => 'y', | |||||
| 'value' => array(0 => 'n', 1 => 'y') | |||||
| ), | |||||
| 'db_type' => array ( | |||||
| 'datatype' => 'VARCHAR', | |||||
| 'formtype' => 'SELECT', | |||||
| 'default' => 'mysql', | |||||
| 'value' => array( | |||||
| //'mongo' => 'MongoDB', | |||||
| 'mysql' => 'MySQL' | |||||
| ) | |||||
| ), | |||||
| 'ftp' => array ( | |||||
| 'datatype' => 'VARCHAR', | |||||
| 'formtype' => 'CHECKBOX', | |||||
| 'default' => 'y', | |||||
| 'value' => array(0 => 'n', 1 => 'y') | |||||
| ), | |||||
| 'ssh' => array ( | |||||
| 'datatype' => 'VARCHAR', | |||||
| 'formtype' => 'CHECKBOX', | |||||
| 'default' => 'y', | |||||
| 'value' => array(0 => 'n', 1 => 'y') | |||||
| 'value' => '' | |||||
| ), | ), | ||||
| 'mail' => array ( | |||||
| 'username' => array ( | |||||
| 'datatype' => 'VARCHAR', | 'datatype' => 'VARCHAR', | ||||
| 'formtype' => 'CHECKBOX', | |||||
| 'default' => 'y', | |||||
| 'value' => array(0 => 'n', 1 => 'y') | |||||
| ), | |||||
| 'mailboxes' => array ( | |||||
| 'datatype' => 'TEXT', | |||||
| 'formtype' => 'TEXTAREA', | |||||
| 'formtype' => 'TEXT', | |||||
| 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', | |||||
| 'errmsg'=> 'username_error_unique'), | |||||
| 1 => array ( 'type' => 'REGEX', | |||||
| 'regex' => '/^[\w\.\-@\+]{0,64}$/', | |||||
| 'errmsg'=> 'username_error_regex'), | |||||
| ), | |||||
| 'default' => '', | 'default' => '', | ||||
| 'value' => '', | 'value' => '', | ||||
| 'width' => '30', | 'width' => '30', | ||||
| 'maxlength' => '255', | |||||
| 'searchable' => 1 | |||||
| ), | ), | ||||
| 'dkim' => array ( | |||||
| 'datatype' => 'VARCHAR', | |||||
| 'formtype' => 'CHECKBOX', | |||||
| 'default' => 'n', | |||||
| 'value' => array(0 => 'n', 1 => 'y') | |||||
| ), | |||||
| 'dkim_private' => array ( | |||||
| 'datatype' => 'TEXT', | |||||
| 'formtype' => 'TEXTAREA', | |||||
| 'default' => '', | |||||
| 'value' => '', | |||||
| 'cols' => '30', | |||||
| 'rows' => '10', | |||||
| 'validators' => array ( 0 => array ('type' => 'CUSTOM', | |||||
| 'class' => 'validate_dkim', | |||||
| 'function' => 'check_private_key', | |||||
| 'errmsg'=> 'dkim_private_key_error'), | |||||
| ), | |||||
| ), | |||||
| 'dkim_public' => array ( | |||||
| 'datatype' => 'TEXT', | |||||
| 'formtype' => 'TEXTAREA', | |||||
| 'default' => '', | |||||
| 'value' => '', | |||||
| 'cols' => '30', | |||||
| 'rows' => '10' | |||||
| ), | |||||
| 'dkim_selector' => array ( | |||||
| 'datatype' => 'VARCHAR', | |||||
| 'formtype' => 'TEXT', | |||||
| 'default' => 'default', | |||||
| 'value' => 'default', | |||||
| 'width' => '20', | |||||
| 'maxlength' => '63', | |||||
| 'validators' => array ( 0 => array ( 'type' => 'REGEX', | |||||
| 'regex' => '/^[a-z0-9]{0,63}$/', | |||||
| 'errmsg'=> 'dkim_selector_error'), | |||||
| ), | |||||
| ), | |||||
| 'dns' => array ( | |||||
| 'username_prefix' => array ( | |||||
| 'datatype' => 'VARCHAR', | 'datatype' => 'VARCHAR', | ||||
| 'formtype' => 'CHECKBOX', | |||||
| 'default' => 'y', | |||||
| 'value' => array(0 => 'n', 1 => 'y') | |||||
| ), | |||||
| 'dns_template_id' => array( | |||||
| 'datatype' => 'INTEGER', | |||||
| 'formtype' => 'SELECT', | |||||
| 'formtype' => 'TEXT', | |||||
| 'default' => '', | 'default' => '', | ||||
| 'datasource' => array ( 'type' => 'SQL', | |||||
| 'querystring' => "SELECT template_id, name FROM dns_template WHERE visible = 'Y' ORDER BY name ASC", | |||||
| 'keyfield'=> 'template_id', | |||||
| 'valuefield'=> 'name' | |||||
| ), | |||||
| 'value' => '', | |||||
| 'value' => '', | |||||
| 'width' => '30', | |||||
| 'maxlength' => '25' | |||||
| ), | ), | ||||
| ) | ) | ||||
| ); | |||||
| ); | |||||
| ?> | |||||
| @@ -45,35 +45,11 @@ require_once '../../lib/app.inc.php'; | |||||
| $app->auth->check_module_permissions('webdns'); | $app->auth->check_module_permissions('webdns'); | ||||
| // Loading classes | // Loading classes | ||||
| $app->uses('tpl,tform,remoting'); | |||||
| $app->uses('tpl,tform,remoting,tform_actions,tools_sites,remoting_lib'); | |||||
| $app->load('tform_actions'); | $app->load('tform_actions'); | ||||
| class page_action extends tform_actions { | class page_action extends tform_actions { | ||||
| function onShowEnd() { | |||||
| global $app, $conf; | |||||
| $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true); | |||||
| // select first template as default | |||||
| if($fields['dns_template_id'] == 0) | |||||
| { | |||||
| $first_template = $app->db->queryOneRecord("SELECT template_id FROM dns_template WHERE visible = 'Y' ORDER BY name ASC"); | |||||
| $fields['dns_template_id'] = $first_template['template_id']; | |||||
| } | |||||
| $template_record = $app->db->queryOneRecord("SELECT * FROM dns_template WHERE template_id = ?", $fields['dns_template_id']); | |||||
| $fields = explode(',', $template_record['fields']); | |||||
| if(is_array($fields)) { | |||||
| foreach($fields as $field) { | |||||
| $app->tpl->setVar($field."_VISIBLE", 1); | |||||
| $field = strtolower($field); | |||||
| $app->tpl->setVar($field, $_POST['dns_'.$field]); | |||||
| } | |||||
| } | |||||
| parent::onShowEnd(); | |||||
| } | |||||
| function onSubmit() { | function onSubmit() { | ||||
| global $app, $conf; | global $app, $conf; | ||||
| @@ -113,319 +89,7 @@ class page_action extends tform_actions { | |||||
| // add domain | // add domain | ||||
| $domain_id = $remote->insert_query('../client/form/domain.tform.php', $fields['client_id'], array('domain' => $fields['domain'])); | $domain_id = $remote->insert_query('../client/form/domain.tform.php', $fields['client_id'], array('domain' => $fields['domain'])); | ||||
| // DNS Zone | |||||
| if($fields['dns']) | |||||
| { | |||||
| if(isset($_POST['dns_ns1']) && $_POST['dns_ns1'] != ''){ | |||||
| $_POST['dns_ns1'] = $app->functions->idn_encode($_POST['dns_ns1']); | |||||
| $_POST['dns_ns1'] = strtolower($_POST['dns_ns1']); | |||||
| } | |||||
| if(isset($_POST['dns_ns2']) && $_POST['dns_ns2'] != ''){ | |||||
| $_POST['dns_ns2'] = $app->functions->idn_encode($_POST['dns_ns2']); | |||||
| $_POST['dns_ns2'] = strtolower($_POST['dns_ns2']); | |||||
| } | |||||
| if(isset($_POST['dns_email']) && $_POST['dns_email'] != ''){ | |||||
| $_POST['dns_email'] = $app->functions->idn_encode($_POST['dns_email']); | |||||
| $_POST['dns_email'] = strtolower($_POST['dns_email']); | |||||
| } | |||||
| $dns_error = ''; | |||||
| if(isset($_POST['dns_ip']) && $_POST['dns_ip'] == '') $dns_error .= $app->lng('error_ip_empty').'<br />'; | |||||
| if(isset($_POST['dns_ipv6']) && $_POST['dns_ipv6'] == '') $dns_error .= $app->lng('error_ipv6_empty').'<br />'; | |||||
| if(isset($_POST['dns_ns1']) && $_POST['dns_ns1'] == '') $dns_error .= $app->lng('error_ns1_empty').'<br />'; | |||||
| elseif(isset($_POST['ns1']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z0-9]{2,30}$/', $_POST['ns1'])) $dns_error .= $app->lng('error_ns1_regex').'<br />'; | |||||
| if(isset($_POST['dns_ns2']) && $_POST['dns_ns2'] == '') $dns_error .= $app->lng('error_ns2_empty').'<br />'; | |||||
| elseif(isset($_POST['ns2']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z0-9]{2,30}$/', $_POST['ns2'])) $dns_error .= $app->lng('error_ns2_regex').'<br />'; | |||||
| if(isset($_POST['dns_email']) && $_POST['dns_email'] == '') $dns_error .= $app->lng('error_email_empty').'<br />'; | |||||
| elseif(isset($_POST['dns_email']) && filter_var($_POST['dns_email'], FILTER_VALIDATE_EMAIL) === false) $dns_error .= $app->lng('error_email_regex').'<br />'; | |||||
| // check for dns errors | |||||
| if($dns_error) | |||||
| { | |||||
| $app->tform->errorMessage = $dns_error; | |||||
| $this->onError(); | |||||
| return; | |||||
| } | |||||
| $tform_def_file = "../dns/form/dns_soa.tform.php"; | |||||
| $app->tform->loadFormDef($tform_def_file); | |||||
| // replace template placeholders | |||||
| $template_record = $app->db->queryOneRecord("SELECT * FROM dns_template WHERE template_id = ?", $fields['dns_template_id']); | |||||
| $tpl_content = $template_record['template']; | |||||
| $tpl_content = str_replace('{DOMAIN}', $fields['domain'], $tpl_content); | |||||
| if($_POST['dns_ip'] != '') $tpl_content = str_replace('{IP}', $_POST['dns_ip'], $tpl_content); | |||||
| if($_POST['dns_ipv6'] != '') $tpl_content = str_replace('{IPV6}',$_POST['dns_ipv6'],$tpl_content); | |||||
| if($_POST['dns_ns1'] != '') $tpl_content = str_replace('{NS1}', $_POST['dns_ns1'], $tpl_content); | |||||
| if($_POST['dns_ns2'] != '') $tpl_content = str_replace('{NS2}', $_POST['dns_ns2'], $tpl_content); | |||||
| if($_POST['dns_email'] != '') $tpl_content = str_replace('{EMAIL}', $_POST['dns_email'], $tpl_content); | |||||
| $enable_dnssec = (($_POST['dns_dnssec'] == 'Y') ? 'Y' : 'N'); | |||||
| // Parse the template | |||||
| $tpl_rows = explode("\n", $tpl_content); | |||||
| $section = ''; | |||||
| $vars = array(); | |||||
| $vars['xfer']=''; | |||||
| $dns_rr = array(); | |||||
| foreach($tpl_rows as $row) { | |||||
| $row = trim($row); | |||||
| if(substr($row, 0, 1) == '[') { | |||||
| if($row == '[ZONE]') { | |||||
| $section = 'zone'; | |||||
| } elseif($row == '[DNS_RECORDS]') { | |||||
| $section = 'dns_records'; | |||||
| } else { | |||||
| die('Unknown section type'); | |||||
| } | |||||
| } else { | |||||
| if($row != '') { | |||||
| // Handle zone section | |||||
| if($section == 'zone') { | |||||
| $parts = explode('=', $row); | |||||
| $key = trim($parts[0]); | |||||
| $val = trim($parts[1]); | |||||
| if($key != '') $vars[$key] = $val; | |||||
| } | |||||
| // Handle DNS Record rows | |||||
| if($section == 'dns_records') { | |||||
| $parts = explode('|', $row); | |||||
| $dns_rr[] = array( | |||||
| 'name' => $parts[1], | |||||
| 'type' => $parts[0], | |||||
| 'data' => $parts[2], | |||||
| 'aux' => $parts[3], | |||||
| 'ttl' => $parts[4] | |||||
| ); | |||||
| } | |||||
| } | |||||
| } | |||||
| } // end foreach | |||||
| $dns_error = ''; | |||||
| if($vars['origin'] == '') $dns_error .= $app->lng('error_origin_empty').'<br />'; | |||||
| if($vars['ns'] == '') $dns_error .= $app->lng('error_ns_empty').'<br />'; | |||||
| if($vars['mbox'] == '') $dns_error .= $app->lng('error_mbox_empty').'<br />'; | |||||
| if($vars['refresh'] == '') $dns_error .= $app->lng('error_refresh_empty').'<br />'; | |||||
| if($vars['retry'] == '') $dns_error .= $app->lng('error_retry_empty').'<br />'; | |||||
| if($vars['expire'] == '') $dns_error .= $app->lng('error_expire_empty').'<br />'; | |||||
| if($vars['minimum'] == '') $dns_error .= $app->lng('error_minimum_empty').'<br />'; | |||||
| if($vars['ttl'] == '') $dns_error .= $app->lng('error_ttl_empty').'<br />'; | |||||
| // check for dns errors | |||||
| if($dns_error) | |||||
| { | |||||
| $app->tform->errorMessage = $dns_error; | |||||
| $this->onError(); | |||||
| return; | |||||
| } | |||||
| // Insert the soa record | |||||
| $sys_userid = $_SESSION['s']['user']['userid']; | |||||
| $origin = $vars['origin']; | |||||
| $ns = $vars['ns']; | |||||
| $mbox = str_replace('@', '.', $vars['mbox']); | |||||
| $refresh = $vars['refresh']; | |||||
| $retry = $vars['retry']; | |||||
| $expire = $vars['expire']; | |||||
| $minimum = $vars['minimum']; | |||||
| $ttl = $vars['ttl']; | |||||
| $xfer = $vars['xfer']; | |||||
| $also_notify = $vars['also_notify']; | |||||
| $update_acl = $vars['update_acl']; | |||||
| $serial = $app->validate_dns->increase_serial(0); | |||||
| $insert_data = array( | |||||
| "sys_userid" => $sys_userid, | |||||
| "sys_groupid" => $client_group_id, | |||||
| "sys_perm_user" => 'riud', | |||||
| "sys_perm_group" => 'riud', | |||||
| "sys_perm_other" => '', | |||||
| "server_id" => $template['dns_server_id'], | |||||
| "origin" => $origin, | |||||
| "ns" => $ns, | |||||
| "mbox" => $mbox, | |||||
| "serial" => $serial, | |||||
| "refresh" => $refresh, | |||||
| "retry" => $retry, | |||||
| "expire" => $expire, | |||||
| "minimum" => $minimum, | |||||
| "ttl" => $ttl, | |||||
| "active" => 'Y', | |||||
| "xfer" => $xfer, | |||||
| "also_notify" => $also_notify, | |||||
| "update_acl" => $update_acl, | |||||
| "dnssec_wanted" => $enable_dnssec | |||||
| ); | |||||
| $dns_soa_id = $app->db->datalogInsert('dns_soa', $insert_data, 'id'); | |||||
| // Insert the dns_rr records | |||||
| if(is_array($dns_rr) && $dns_soa_id > 0) { | |||||
| foreach($dns_rr as $rr) { | |||||
| $insert_data = array( | |||||
| "sys_userid" => $sys_userid, | |||||
| "sys_groupid" => $client_group_id, | |||||
| "sys_perm_user" => 'riud', | |||||
| "sys_perm_group" => 'riud', | |||||
| "sys_perm_other" => '', | |||||
| "server_id" => $template['dns_server_id'], | |||||
| "zone" => $dns_soa_id, | |||||
| "name" => $rr['name'], | |||||
| "type" => $rr['type'], | |||||
| "data" => $rr['data'], | |||||
| "aux" => $rr['aux'], | |||||
| "ttl" => $rr['ttl'], | |||||
| "active" => 'Y' | |||||
| ); | |||||
| $dns_rr_id = $app->db->datalogInsert('dns_rr', $insert_data, 'id'); | |||||
| } | |||||
| if($fields['dkim']) | |||||
| { | |||||
| $insert_data = array( | |||||
| "sys_userid" => $sys_userid, | |||||
| "sys_groupid" => $client_group_id, | |||||
| "sys_perm_user" => 'riud', | |||||
| "sys_perm_group" => 'riud', | |||||
| "sys_perm_other" => '', | |||||
| "server_id" => $template['dns_server_id'], | |||||
| "zone" => $dns_soa_id, | |||||
| "name" => $fields['dkim_selector'].'._domainkey.'.$fields['domain'].'.', | |||||
| "type" => 'TXT', | |||||
| "data" => 'v=DKIM1; t=s; p='.str_replace(array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----',"\r","\n"), '', $_POST['dkim_public']), | |||||
| "aux" => 0, | |||||
| "ttl" => 86400, | |||||
| "active" => 'Y' | |||||
| ); | |||||
| $dns_rr_id = $app->db->datalogInsert('dns_rr', $insert_data, 'id'); | |||||
| } | |||||
| } | |||||
| $tform_def_file = "form/ftp_bd_service.tform.php"; | |||||
| $app->tform->loadFormDef($tform_def_file); | |||||
| } | |||||
| if($fields['mail']) | |||||
| { | |||||
| // add mail domain | |||||
| $params = array( | |||||
| 'server_id' => $template['mail_server_id'], | |||||
| 'domain' => $fields['domain'], | |||||
| 'dkim' => $fields['dkim'], | |||||
| 'dkim_private' => $_POST['dkim_private'], | |||||
| 'dkim_public' => $_POST['dkim_public'], | |||||
| 'dkim_selector' => $fields['dkim_selector'], | |||||
| 'active' => 'y' | |||||
| ); | |||||
| $mail_domain_id = $remote->insert_query('../mail/form/mail_domain.tform.php', $fields['client_id'], $params); | |||||
| if($template['policy']) | |||||
| { | |||||
| $params = array( | |||||
| 'server_id' => $template['mail_server_id'], | |||||
| 'policy_id' => $template['policy'], | |||||
| 'priority' => 5, | |||||
| 'email' => '@'.$fields['domain'], | |||||
| 'fullname' => '@'.$fields['domain'], | |||||
| 'local' => 'Y', | |||||
| ); | |||||
| $remote->insert_query('../mail/form/spamfilter_users.tform.php', $fields['client_id'], $params); | |||||
| } | |||||
| if($fields['mailboxes']) | |||||
| { | |||||
| $mailboxes = explode(',', $fields['mailboxes']); | |||||
| $mailbox_passwords = array(); | |||||
| foreach($mailboxes as $alias) | |||||
| { | |||||
| $alias = strtolower($app->functions->idn_encode($alias)); | |||||
| $mailbox = $alias.'@'.$fields['domain']; | |||||
| // validate, on error skip | |||||
| if( ! preg_match('/^[_a-z0-9][\w\.\-_\+@]{1,63}$/', $mailbox)) continue; | |||||
| $mailbox_passwords[$mailbox] = substr(sha1(rand()), 0, 10); | |||||
| $params = array( | |||||
| 'server_id' => $template['mail_server_id'], | |||||
| 'uid' => -1, | |||||
| 'gid' => -1, | |||||
| 'email' => $mailbox, | |||||
| 'login' => $mailbox, | |||||
| 'password' => $mailbox_passwords[$mailbox], | |||||
| 'quota' => $template['mailbox_quota']*1024*1024, | |||||
| 'postfix' => 'y', | |||||
| 'disableimap' => ($template['enableimap'] == 'y' ? 'n' : 'y'), | |||||
| 'disablepop3' => ($template['enablepop3'] == 'y' ? 'n' : 'y'), | |||||
| 'disablesmtp' => ($template['enablesmtp'] == 'y' ? 'n' : 'y'), | |||||
| 'maildir' => '/var/vmail/'.$fields['domain'].'/'.$alias, | |||||
| 'homedir' => '/var/vmail', | |||||
| ); | |||||
| $remote->insert_query('../mail/form/mail_user.tform.php', $fields['client_id'], $params); | |||||
| } | |||||
| } | |||||
| } | |||||
| // add site | |||||
| $params = array( | |||||
| 'type' => 'vhost', | |||||
| 'domain' => $fields['domain'], | |||||
| 'server_id' => $template['web_server_id'], | |||||
| 'ip_address' => $template['ip_address'], | |||||
| 'ipv6_address' => $template['ipv6_address'], | |||||
| 'traffic_quota' => $template['traffic_quota'], | |||||
| 'hd_quota' => $template['hd_quota'], | |||||
| 'cgi' => $template['cgi'], | |||||
| 'ssi' => $template['ssi'], | |||||
| 'suexec' => $template['suexec'], | |||||
| 'ruby' => $template['ruby'], | |||||
| 'python' => $template['python'], | |||||
| 'perl' => $template['perl'], | |||||
| 'errordocs' => $template['errordocs'], | |||||
| 'subdomain' => $template['subdomain'], | |||||
| 'php' => $template['php'], | |||||
| 'fastcgi_php_version' => $template['fastcgi_php_version'], | |||||
| 'seo_redirect' => $template['seo_redirect'], | |||||
| 'rewrite_to_https' => $template['rewrite_to_https'], | |||||
| 'allow_override' => $template['allow_override'], | |||||
| 'http_port' => $template['http_port'], | |||||
| 'https_port' => $template['https_port'], | |||||
| 'apache_directives' => $template['apache_directives'], | |||||
| 'nginx_directives' => $template['nginx_directives'], | |||||
| 'php_fpm_use_socket' => $template['php_fpm_use_socket'], | |||||
| 'pm' => $template['pm'], | |||||
| 'pm_max_children' => $template['pm_max_children'], | |||||
| 'pm_start_servers' => $template['pm_start_servers'], | |||||
| 'pm_min_spare_servers' => $template['pm_min_spare_servers'], | |||||
| 'pm_max_spare_servers' => $template['pm_max_spare_servers'], | |||||
| 'pm_process_idle_timeout' => $template['pm_process_idle_timeout'], | |||||
| 'pm_max_requests' => $template['pm_max_requests'], | |||||
| 'custom_php_ini' => $template['custom_php_ini'], | |||||
| 'active' => 'y', | |||||
| 'document_root' => '-', | |||||
| 'system_user' => '-', | |||||
| 'system_group' => '-', | |||||
| 'client_group_id' => $client_group_id, | |||||
| ); | |||||
| $site_id = $remote->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_id'], $params, 'sites:web_vhost_domain:on_after_insert'); | |||||
| // get site data | |||||
| $app->uses('remoting_lib'); | |||||
| $app->remoting_lib->loadFormDef('../sites/form/web_vhost_domain.tform.php'); | |||||
| $site_data = $app->remoting_lib->getDataRecord($site_id); | |||||
| //--------------------------------------------------- | |||||
| // generate username | // generate username | ||||
| $generated_username = $client_prefix.substr(sha1(rand()), 0, 8); | $generated_username = $client_prefix.substr(sha1(rand()), 0, 8); | ||||
| @@ -477,31 +141,6 @@ class page_action extends tform_actions { | |||||
| $remote->insert_query('../sites/form/ftp_user.tform.php', $fields['client_id'], $ftp_params); | $remote->insert_query('../sites/form/ftp_user.tform.php', $fields['client_id'], $ftp_params); | ||||
| } | } | ||||
| if($fields['ssh']) { | |||||
| // add ssh user | |||||
| $ssh_params = array( | |||||
| 'server_id' => $template['web_server_id'], | |||||
| 'parent_domain_id' => $site_id, | |||||
| 'quota_size' => $template['hd_quota'], | |||||
| 'dir' => $site_data['document_root'], | |||||
| 'puser' => $site_data['system_user'], | |||||
| 'pgroup' => $site_data['system_group'], | |||||
| 'sys_groupid' => $site_data['sys_groupid'], | |||||
| 'chroot' => $template['shell_chroot'], | |||||
| 'shell' => $template['shell'], | |||||
| 'active' => 'y', | |||||
| 'username' => $generated_username, | |||||
| ); | |||||
| // username, password | |||||
| if(isset($ftp_params)) { | |||||
| $ssh_params['password'] = $ftp_params['password']; | |||||
| } else { | |||||
| $ssh_params['password'] = substr(sha1(rand()), 0, 10); | |||||
| } | |||||
| $remote->insert_query('../sites/form/shell_user.tform.php', $fields['client_id'], $ssh_params); | |||||
| } | |||||
| // results | // results | ||||
| echo ' | echo ' | ||||
| @@ -511,9 +150,9 @@ class page_action extends tform_actions { | |||||
| <div class="table-wrapper marginTop15"> | <div class="table-wrapper marginTop15"> | ||||
| <table class="table"> | <table class="table"> | ||||
| <thead class="dark"> | <thead class="dark"> | ||||
| <tr> | |||||
| <!--tr> | |||||
| <th colspan="2">'.$fields['domain'].'</th> | <th colspan="2">'.$fields['domain'].'</th> | ||||
| </tr> | |||||
| </tr--!> | |||||
| </thead> | </thead> | ||||
| <tbody>'; | <tbody>'; | ||||
| if(isset($db_user_params)) { | if(isset($db_user_params)) { | ||||
| @@ -538,33 +177,7 @@ class page_action extends tform_actions { | |||||
| <td>'.$ftp_params['password'].'</td> | <td>'.$ftp_params['password'].'</td> | ||||
| </tr>'; | </tr>'; | ||||
| } | } | ||||
| if(isset($ssh_params)) { | |||||
| echo' | |||||
| <tr class="info"> | |||||
| <th>SSH user</th> | |||||
| <th>SSH password</th> | |||||
| </tr> | |||||
| <tr> | |||||
| <td>'.$ssh_params['username'].'</td> | |||||
| <td>'.$ssh_params['password'].'</td> | |||||
| </tr>'; | |||||
| } | |||||
| if(isset($mailbox_passwords) and (bool)count($mailbox_passwords)) | |||||
| { | |||||
| echo ' | |||||
| <tr class="info"> | |||||
| <th>Mailbox</th> | |||||
| <th>Password</th> | |||||
| </tr>'; | |||||
| foreach($mailbox_passwords as $mail => $pass) | |||||
| { | |||||
| echo' | |||||
| <tr> | |||||
| <td>'.$mail.'</td> | |||||
| <td>'.$pass.'</td> | |||||
| </tr>'; | |||||
| } | |||||
| } | |||||
| echo' | echo' | ||||
| </tbody> | </tbody> | ||||
| </table> | </table> | ||||
| @@ -572,11 +185,6 @@ class page_action extends tform_actions { | |||||
| '; | '; | ||||
| } | } | ||||
| private function clean_private_key($key) | |||||
| { | |||||
| return str_replace('\r\n', '', $key); | |||||
| } | |||||
| } | } | ||||
| class remote_actions extends remoting { | class remote_actions extends remoting { | ||||
| @@ -185,4 +185,65 @@ $wb['error_dominio_www'] = 'El dominio no es correcto. No escriba "www" antes de | |||||
| $wb['error_no_existe_dominio_padre'] = 'El dominio padre para este subdominio, no existe.'; | $wb['error_no_existe_dominio_padre'] = 'El dominio padre para este subdominio, no existe.'; | ||||
| $wb['error_no_ip'] = 'No tiene ip, necesita añadirla en la configuración.'; | $wb['error_no_ip'] = 'No tiene ip, necesita añadirla en la configuración.'; | ||||
| $wb['error_subdominio_existe'] = 'Este subdominio existe.'; | $wb['error_subdominio_existe'] = 'Este subdominio existe.'; | ||||
| $wb["nom_bd_txt"] = 'Nombre'; | |||||
| $wb["usuario_bd_txt"] = 'Usuario'; | |||||
| $wb["pass_bd_txt"] = 'Clave'; | |||||
| $wb["usuario_ftp_txt"] = 'Usuario'; | |||||
| $wb["clave_ftp_txt"] = 'Clave'; | |||||
| $wb["database_user_txt"] = 'Database user'; | |||||
| $wb["database_password_txt"] = 'Database password'; | |||||
| $wb["password_strength_txt"] = 'Password strength'; | |||||
| $wb["client_txt"] = 'Client'; | |||||
| $wb["active_txt"] = 'Active'; | |||||
| $wb["database_user_error_empty"] = 'Database user is empty.'; | |||||
| $wb["database_user_error_unique"] = 'There is already a database user with this name on the server. To get a unique name, e.g. prepend your domain name to the username.'; | |||||
| $wb["database_user_error_regex"] = 'Invalid database user name. The username may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.'; | |||||
| $wb["database_user_error_len"] = 'Database username - {user} - too long. The max. database username length incl. prefix is 16 chars.'; | |||||
| $wb["btn_save_txt"] = 'Save'; | |||||
| $wb["btn_cancel_txt"] = 'Cancel'; | |||||
| $wb['generate_password_txt'] = 'Generate Password'; | |||||
| $wb['repeat_password_txt'] = 'Repeat Password'; | |||||
| $wb['password_mismatch_txt'] = 'The passwords do not match.'; | |||||
| $wb['password_match_txt'] = 'The passwords do match.'; | |||||
| $wb['globalsearch_resultslimit_of_txt'] = "of"; | |||||
| $wb['globalsearch_resultslimit_results_txt'] = "results"; | |||||
| $wb['globalsearch_noresults_text_txt'] = "No results."; | |||||
| $wb['globalsearch_noresults_limit_txt'] = "0 results"; | |||||
| $wb['globalsearch_searchfield_watermark_txt'] = "Search"; | |||||
| $wb['globalsearch_suggestions_text_txt'] = "Suggestions"; | |||||
| $wb['limit_database_user_txt'] = "The max. number of database users is reached."; | |||||
| $wb['database_password_error_empty'] = 'Database password is empty.'; | |||||
| $wb['uid_txt'] = 'Identificador de usuario (UID)'; | |||||
| $wb['gid_txt'] = 'Identificador de grupo (GID)'; | |||||
| $wb['dir_txt'] = 'Directorio'; | |||||
| $wb['quota_files_txt'] = 'Cuota de archivos'; | |||||
| $wb['quota_files_unity_txt'] = 'Archivos'; | |||||
| $wb['ul_ratio_txt'] = 'Radio de subida'; | |||||
| $wb['dl_ratio_txt'] = 'Radio de descarga'; | |||||
| $wb['ul_bandwidth_txt'] = 'Ancho de banda de subida'; | |||||
| $wb['dl_bandwidth_txt'] = 'Ancho de banda de bajada'; | |||||
| $wb['server_id_txt'] = 'Servidor'; | |||||
| $wb['parent_domain_id_txt'] = 'Sitio web'; | |||||
| $wb['username_txt'] = 'Nombre de usuario'; | |||||
| $wb['password_txt'] = 'Contraseña'; | |||||
| $wb['password_strength_txt'] = 'Fortaleza de la contraseña'; | |||||
| $wb['quota_size_txt'] = 'Cuota de disco'; | |||||
| $wb['active_txt'] = 'Habilitado'; | |||||
| $wb['limit_ftp_user_txt'] = 'Ha alcanzado en su cuenta el número máx. de usuarios FTP.'; | |||||
| $wb['username_error_empty'] = 'El nombre de usuario está vacío.'; | |||||
| $wb['username_error_unique'] = 'El nombre de usuario debe ser único.'; | |||||
| $wb['username_error_regex'] = 'El nombre de usuario contiene caracteres inválidos.'; | |||||
| $wb['quota_size_error_empty'] = 'La cuota está vacía.'; | |||||
| $wb['uid_error_empty'] = 'GID está vacío.'; | |||||
| $wb['directory_error_empty'] = 'El directorio está vacío.'; | |||||
| $wb['directory_error_notinweb'] = 'El directorio no se encuentra dentro del directorio de inicio del sitio web.'; | |||||
| $wb['parent_domain_id_error_empty'] = 'No se ha seleccionado un sitio web.'; | |||||
| $wb['quota_size_error_regex'] = 'Cuota: ingrese -1 para ilimitado o un número > 0'; | |||||
| $wb['dir_dot_error'] = 'No se permite .. en la ruta.'; | |||||
| $wb['dir_slashdot_error'] = 'No se permite ./ en la ruta.'; | |||||
| $wb['generate_password_txt'] = 'Generar contraseña'; | |||||
| $wb['repeat_password_txt'] = 'Repetir contraseña'; | |||||
| $wb['password_mismatch_txt'] = 'Las contraseñas no coinciden.'; | |||||
| $wb['password_match_txt'] = 'Las contraseñas coinciden.'; | |||||
| $wb['expires_txt'] = 'Expire at'; | |||||
| ?> | ?> | ||||
| @@ -185,4 +185,65 @@ $wb['error_dominio_www'] = 'El dominio no es correcto. No escriba "www" antes de | |||||
| $wb['error_no_existe_dominio_padre'] = 'El dominio padre para este subdominio, no existe.'; | $wb['error_no_existe_dominio_padre'] = 'El dominio padre para este subdominio, no existe.'; | ||||
| $wb['error_no_ip'] = 'No tiene ip, necesita añadirla en la configuración.'; | $wb['error_no_ip'] = 'No tiene ip, necesita añadirla en la configuración.'; | ||||
| $wb['error_subdominio_existe'] = 'Este subdominio existe.'; | $wb['error_subdominio_existe'] = 'Este subdominio existe.'; | ||||
| $wb["nom_bd_txt"] = 'Nombre'; | |||||
| $wb["usuario_bd_txt"] = 'Usuario'; | |||||
| $wb["pass_bd_txt"] = 'Clave'; | |||||
| $wb["usuario_ftp_txt"] = 'Usuario'; | |||||
| $wb["clave_ftp_txt"] = 'Clave'; | |||||
| $wb["database_user_txt"] = 'Base de Datos Usuaio'; | |||||
| $wb["database_password_txt"] = 'Password'; | |||||
| $wb["password_strength_txt"] = 'Password fuerza'; | |||||
| $wb["client_txt"] = 'Cliente'; | |||||
| $wb["active_txt"] = 'Active'; | |||||
| $wb["database_user_error_empty"] = 'Base de Datos usuario esta vacío.'; | |||||
| $wb["database_user_error_unique"] = 'There is already a database user with this name on the server. To get a unique name, e.g. prepend your domain name to the username.'; | |||||
| $wb["database_user_error_regex"] = 'Invalid database user name. The username may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.'; | |||||
| $wb["database_user_error_len"] = 'Database username - {user} - too long. The max. database username length incl. prefix is 16 chars.'; | |||||
| $wb["btn_save_txt"] = 'Guardar'; | |||||
| $wb["btn_cancel_txt"] = 'Cancelar'; | |||||
| $wb['generate_password_txt'] = 'Generar Password'; | |||||
| $wb['repeat_password_txt'] = 'Repetir Password'; | |||||
| $wb['password_mismatch_txt'] = 'The passwords do not match.'; | |||||
| $wb['password_match_txt'] = 'The passwords do match.'; | |||||
| $wb['globalsearch_resultslimit_of_txt'] = "of"; | |||||
| $wb['globalsearch_resultslimit_results_txt'] = "results"; | |||||
| $wb['globalsearch_noresults_text_txt'] = "No results."; | |||||
| $wb['globalsearch_noresults_limit_txt'] = "0 results"; | |||||
| $wb['globalsearch_searchfield_watermark_txt'] = "Search"; | |||||
| $wb['globalsearch_suggestions_text_txt'] = "Suggestions"; | |||||
| $wb['limit_database_user_txt'] = "The max. number of database users is reached."; | |||||
| $wb['database_password_error_empty'] = 'Base de Datos password esta vacío.'; | |||||
| $wb['uid_txt'] = 'Identificador de usuario (UID)'; | |||||
| $wb['gid_txt'] = 'Identificador de grupo (GID)'; | |||||
| $wb['dir_txt'] = 'Directorio'; | |||||
| $wb['quota_files_txt'] = 'Cuota de archivos'; | |||||
| $wb['quota_files_unity_txt'] = 'Archivos'; | |||||
| $wb['ul_ratio_txt'] = 'Radio de subida'; | |||||
| $wb['dl_ratio_txt'] = 'Radio de descarga'; | |||||
| $wb['ul_bandwidth_txt'] = 'Ancho de banda de subida'; | |||||
| $wb['dl_bandwidth_txt'] = 'Ancho de banda de bajada'; | |||||
| $wb['server_id_txt'] = 'Servidor'; | |||||
| $wb['parent_domain_id_txt'] = 'Sitio web'; | |||||
| $wb['username_txt'] = 'Nombre de usuario'; | |||||
| $wb['password_txt'] = 'Contraseña'; | |||||
| $wb['password_strength_txt'] = 'Fortaleza de la contraseña'; | |||||
| $wb['quota_size_txt'] = 'Cuota de disco'; | |||||
| $wb['active_txt'] = 'Habilitado'; | |||||
| $wb['limit_ftp_user_txt'] = 'Ha alcanzado en su cuenta el número máx. de usuarios FTP.'; | |||||
| $wb['username_error_empty'] = 'El nombre de usuario está vacío.'; | |||||
| $wb['username_error_unique'] = 'El nombre de usuario debe ser único.'; | |||||
| $wb['username_error_regex'] = 'El nombre de usuario contiene caracteres inválidos.'; | |||||
| $wb['quota_size_error_empty'] = 'La cuota está vacía.'; | |||||
| $wb['uid_error_empty'] = 'GID está vacío.'; | |||||
| $wb['directory_error_empty'] = 'El directorio está vacío.'; | |||||
| $wb['directory_error_notinweb'] = 'El directorio no se encuentra dentro del directorio de inicio del sitio web.'; | |||||
| $wb['parent_domain_id_error_empty'] = 'No se ha seleccionado un sitio web.'; | |||||
| $wb['quota_size_error_regex'] = 'Cuota: ingrese -1 para ilimitado o un número > 0'; | |||||
| $wb['dir_dot_error'] = 'No se permite .. en la ruta.'; | |||||
| $wb['dir_slashdot_error'] = 'No se permite ./ en la ruta.'; | |||||
| $wb['generate_password_txt'] = 'Generar contraseña'; | |||||
| $wb['repeat_password_txt'] = 'Repetir contraseña'; | |||||
| $wb['password_mismatch_txt'] = 'Las contraseñas no coinciden.'; | |||||
| $wb['password_match_txt'] = 'Las contraseñas coinciden.'; | |||||
| $wb['expires_txt'] = 'Expire at'; | |||||
| ?> | ?> | ||||
| @@ -30,13 +30,14 @@ $items = array(); | |||||
| $items[] = array( 'title' => 'Nuevo servicio web', | $items[] = array( 'title' => 'Nuevo servicio web', | ||||
| 'target' => 'content', | 'target' => 'content', | ||||
| 'link' => 'webdns/new_service_webdns.php', | 'link' => 'webdns/new_service_webdns.php', | ||||
| 'html_id' => 'new_service_webdns'); | |||||
| 'html_id' => 'new_service_webdns' | |||||
| ); | |||||
| $items[] = array( 'title' => 'FTP con BD', | |||||
| /*$items[] = array( 'title' => 'BBDD y FTP', | |||||
| 'target' => 'content', | 'target' => 'content', | ||||
| 'link' => 'webdns/ftp_bd_service.php', | 'link' => 'webdns/ftp_bd_service.php', | ||||
| 'html_id' =>'ftp_service' | 'html_id' =>'ftp_service' | ||||
| ); | |||||
| );*/ | |||||
| $items[] = array( 'title' => 'Versión', | $items[] = array( 'title' => 'Versión', | ||||
| 'target' => 'content', | 'target' => 'content', | ||||
| 'link' => 'webdns/version_webdns.php', | 'link' => 'webdns/version_webdns.php', | ||||
| @@ -74,6 +74,73 @@ class page_action extends tform_actions { | |||||
| public $no_ip = false; | public $no_ip = false; | ||||
| function crearBaseDatosFtp($remoto){ | |||||
| global $app, $conf; | |||||
| $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true); | |||||
| // generate username | |||||
| $generated_username = $fields['client_id'].substr(sha1(rand()), 0, 8);//client_prefix.substr(sha1(rand()), 0, 8); | |||||
| //print "<pre>"; print_r($generated_username); print "</pre>\n"; | |||||
| $sitio_id = $app->db->queryOneRecord('SELECT domain_id, domain FROM web_domain WHERE domain = "'.$fields['domain'].'"'); | |||||
| //print "<pre>"; print_r($camDnsRR); print "</pre>\n"; | |||||
| $camDnsRR = $app->db->queryOneRecord('SELECT server_id, zone FROM dns_rr WHERE name LIKE "'.$this->dominio.'%"'); | |||||
| // add database user | |||||
| $db_user_params = array( | |||||
| 'server_id' => $camDnsRR['server_id'], | |||||
| 'database_user' => $generated_username, | |||||
| 'database_password' => substr(sha1(rand()), 0, 10) | |||||
| ); | |||||
| //print "<pre>"; print_r($db_user_params); print "</pre>\n"; | |||||
| //print "<pre>"; print_r($fields); print "</pre>\n"; | |||||
| $db_user_id = $remoto->insert_query('../sites/form/database_user.tform.php', $fields['client_id'], $db_user_params, 'sites:web_database_user:on_after_insert'); | |||||
| // add database | |||||
| $paramsBD = array( | |||||
| 'server_id' => $camDnsRR['server_id'], | |||||
| 'parent_domain_id' => $sitio_id['domain_id'], | |||||
| 'type' => 'y', | |||||
| 'database_quota' => '-1', | |||||
| 'database_name' => $db_user_params['database_user'], | |||||
| 'database_user_id' => $db_user_id, | |||||
| 'database_charset' => 'utf8', | |||||
| 'remote_access' => 'n', | |||||
| 'remote_ips' => '-1', | |||||
| 'active' => 'y' | |||||
| ); | |||||
| //print "<pre>"; print_r($paramsBD); print "</pre>\n"; | |||||
| //print "<pre>"; print_r($fields); print "</pre>\n"; | |||||
| $remoto->sites_database_add($fields['client_id'], $paramsBD); | |||||
| // get site data para usarlo en la creación de la cuenta ftp, otra forma de cargar una tupla dandole un id | |||||
| //$app->uses('remoting_lib'); | |||||
| $app->remoting_lib->loadFormDef('../sites/form/web_vhost_domain.tform.php'); | |||||
| $site_data = $app->remoting_lib->getDataRecord($sitio_id); | |||||
| // add ftp user | |||||
| $ftp_params = array( | |||||
| 'server_id' => $camDnsRR['server_id'],//$template['web_server_id'], | |||||
| 'parent_domain_id' => $sitio_id['domain_id'],//$site_id, | |||||
| 'username' => $generated_username, | |||||
| 'password' => substr(sha1(rand()), 0, 10), | |||||
| 'quota_size' => '-1',//$template['hd_quota'], | |||||
| 'dir' => $site_data['0']['document_root'], | |||||
| 'uid' => $site_data['0']['system_user'], | |||||
| 'gid' => $site_data['0']['system_group'], | |||||
| 'sys_groupid' => $site_data['0']['sys_groupid'], | |||||
| 'quota_files' => '-1',//$template['quota_files'], | |||||
| 'ul_ratio' => '-1',//$template['ul_ratio'], | |||||
| 'dl_ratio' => '-1',//$template['dl_ratio'], | |||||
| 'ul_bandwidth' => '-1',//$template['ul_bandwidth'], | |||||
| 'dl_bandwidth' => '-1',//$template['dl_bandwidth'], | |||||
| 'active' => 'y', | |||||
| ); | |||||
| //print "<pre>"; print_r($ftp_params); print "</pre>\n"; | |||||
| //print "<pre>"; print_r($site_data); print "</pre>\n"; | |||||
| $remoto->insert_query('../sites/form/ftp_user.tform.php', $fields['client_id'], $ftp_params); | |||||
| } | |||||
| //Expresiones regulares para comprobar si es subdominio | //Expresiones regulares para comprobar si es subdominio | ||||
| function comprobarSubDominios($subdom) { | function comprobarSubDominios($subdom) { | ||||
| global $app, $conf; | global $app, $conf; | ||||
| @@ -81,10 +148,10 @@ class page_action extends tform_actions { | |||||
| $patronSubDominos = "/(.*?)\.(.*)$/"; | $patronSubDominos = "/(.*?)\.(.*)$/"; | ||||
| $patronWWW = "/^w{3}/"; | $patronWWW = "/^w{3}/"; | ||||
| //$patronPunto = '/(\.)/'; | //$patronPunto = '/(\.)/'; | ||||
| $patronP1 = '/(^\.)/'; | |||||
| /*$patronP1 = '/(^\.)/'; | |||||
| $patronP2 = '/(\.$)/'; | $patronP2 = '/(\.$)/'; | ||||
| $patronP3 = '/(\.\.+)/'; | $patronP3 = '/(\.\.+)/'; | ||||
| $patronP4 = '/(\.[[:alpha:]]*)$/'; | |||||
| $patronP4 = '/(\.[[:alpha:]]*)$/';*/ | |||||
| //Se comprueba que no tenga 3 w "www" al principio del nombre del dominio o subdomino | //Se comprueba que no tenga 3 w "www" al principio del nombre del dominio o subdomino | ||||
| $encontradoWWW = preg_match($patronWWW, $subdom, $coincidencias); | $encontradoWWW = preg_match($patronWWW, $subdom, $coincidencias); | ||||
| @@ -98,7 +165,6 @@ class page_action extends tform_actions { | |||||
| $app->tform->errorMessage = $app->tform->wordbook['error_dominio_mas_puntos']; | $app->tform->errorMessage = $app->tform->wordbook['error_dominio_mas_puntos']; | ||||
| return; | return; | ||||
| //$this->subdom_error = true; | |||||
| } else if(substr_count($subdom,".") == 2){ | } else if(substr_count($subdom,".") == 2){ | ||||
| $this->encontrado = preg_match($patronSubDominos, $subdom, $coincidencias); | $this->encontrado = preg_match($patronSubDominos, $subdom, $coincidencias); | ||||
| @@ -313,9 +379,10 @@ class page_action extends tform_actions { | |||||
| if(!$this->subdom_error){ | if(!$this->subdom_error){ | ||||
| $this->crearSitioWebSubdominio($remote); | $this->crearSitioWebSubdominio($remote); | ||||
| } | } | ||||
| $this->crearBaseDatosFtp($remote); | |||||
| return; | return; | ||||
| } //else if(!$this->subdom_error){ | } //else if(!$this->subdom_error){ | ||||
| //$this->crearBaseDatosFtp($remote); | |||||
| // check for domain unique name | // check for domain unique name | ||||
| if($app->db->queryOneRecord('SELECT domain_id FROM domain WHERE domain = "'.$fields['domain'].'"')) { | if($app->db->queryOneRecord('SELECT domain_id FROM domain WHERE domain = "'.$fields['domain'].'"')) { | ||||
| $app->tform->errorMessage = $app->tform->wordbook['domain_error_unique']; | $app->tform->errorMessage = $app->tform->wordbook['domain_error_unique']; | ||||
| @@ -345,7 +412,7 @@ class page_action extends tform_actions { | |||||
| // add domain. Llamada que inserta el dominio en la tabla domain | // add domain. Llamada que inserta el dominio en la tabla domain | ||||
| $domain_id = $remote->insert_query('../client/form/domain.tform.php', $fields['client_id'], array('domain' => $fields['domain'])); | $domain_id = $remote->insert_query('../client/form/domain.tform.php', $fields['client_id'], array('domain' => $fields['domain'])); | ||||
| //$this->crearBaseDatosFtp($remote); | |||||
| //Carga del formulario dns_soa para guardar en base de datos | //Carga del formulario dns_soa para guardar en base de datos | ||||
| $tform_def_file = "../dns/form/dns_soa.tform.php"; | $tform_def_file = "../dns/form/dns_soa.tform.php"; | ||||
| @@ -583,17 +650,22 @@ class page_action extends tform_actions { | |||||
| print "<pre>";print_r($fields);print "</pre>\n";*/ | print "<pre>";print_r($fields);print "</pre>\n";*/ | ||||
| //print "<pre>Formulario ";print_r($formulario);print "</pre>\n"; | //print "<pre>Formulario ";print_r($formulario);print "</pre>\n"; | ||||
| //$this->crearBaseDatosFtp($remote); | |||||
| //print 'DNS IPV6 ' . $dns_ip_servidor_ipv6['ip_address']; | //print 'DNS IPV6 ' . $dns_ip_servidor_ipv6['ip_address']; | ||||
| //El último parámetro es para lanzar un evento que llama a la función on_after_insert que prepara los campos document_root, system_user y system_group | //El último parámetro es para lanzar un evento que llama a la función on_after_insert que prepara los campos document_root, system_user y system_group | ||||
| $site_id = $remote->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_id'], $paramsite, 'sites:web_vhost_domain:on_after_insert'); | $site_id = $remote->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_id'], $paramsite, 'sites:web_vhost_domain:on_after_insert'); | ||||
| print 'Sitio id '. $site_id; | |||||
| //$this->crearBaseDatosFtp($remote); | |||||
| // get site data | // get site data | ||||
| $app->uses('remoting_lib'); | $app->uses('remoting_lib'); | ||||
| $app->remoting_lib->loadFormDef('../sites/form/web_vhost_domain.tform.php'); | $app->remoting_lib->loadFormDef('../sites/form/web_vhost_domain.tform.php'); | ||||
| $site_data = $app->remoting_lib->getDataRecord($site_id); | $site_data = $app->remoting_lib->getDataRecord($site_id); | ||||
| //IMPORTANTE, es necesario cargar nuestro formulario para poder ejecutar la función que crea | |||||
| //la base de datos y el ftp ya que hay datos que tomamos de el antes de ejecutarla. | |||||
| $app->tform->loadFormDef('form/new_service_webdns.tform.php'); | |||||
| $this->crearBaseDatosFtp($remote); | |||||
| //$remote->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_id'], $paramsite); | //$remote->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_id'], $paramsite); | ||||
| //Si todo va bien, el resultado | //Si todo va bien, el resultado | ||||
| @@ -616,15 +688,43 @@ class page_action extends tform_actions { | |||||
| //parent::onSubmit(); | //parent::onSubmit(); | ||||
| //}//FIN IF | //}//FIN IF | ||||
| //$this->crearBaseDatosFtp($remote); | |||||
| } | } | ||||
| } | } | ||||
| class remote_actions extends remoting { | class remote_actions extends remoting { | ||||
| public function insert_query($formdef_file, $client_id, $params, $event_identifier = '') { | public function insert_query($formdef_file, $client_id, $params, $event_identifier = '') { | ||||
| return $this->insertQuery($formdef_file, $client_id, $params, $event_identifier); | return $this->insertQuery($formdef_file, $client_id, $params, $event_identifier); | ||||
| } | } | ||||
| public function sites_database_add($client_id, $params){ | |||||
| global $app; | |||||
| $sql = $this->insertQueryPrepare('../sites/form/database.tform.php', $client_id, $params); | |||||
| if($sql !== false) { | |||||
| $app->uses('sites_database_plugin'); | |||||
| $this->id = 0; | |||||
| $this->dataRecord = $params; | |||||
| $app->sites_database_plugin->processDatabaseInsert($this); | |||||
| $retval = $this->insertQueryExecute($sql, $params); | |||||
| // set correct values for backup_interval and backup_copies | |||||
| if(isset($params['backup_interval']) || isset($params['backup_copies'])){ | |||||
| $sql_set = array(); | |||||
| if(isset($params['backup_interval'])) $sql_set[] = "backup_interval = '".$app->db->quote($params['backup_interval'])."'"; | |||||
| if(isset($params['backup_copies'])) $sql_set[] = "backup_copies = ".$app->functions->intval($params['backup_copies']); | |||||
| //$app->db->query("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$retval); | |||||
| $this->updateQueryExecute("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$retval, $retval, $params); | |||||
| } | |||||
| return $retval; | |||||
| } | |||||
| return false; | |||||
| } | |||||
| } | } | ||||
| $page = new page_action; | $page = new page_action; | ||||
| @@ -1,10 +1,21 @@ | |||||
| <div class="form-group"> | |||||
| <label class="col-sm-3 control-label">{tmpl_var name='password_strength_txt'}</label> | |||||
| <div class="col-sm-9 checkbox"> | |||||
| <div id="passBar"></div> | |||||
| <span id="passText"> </span> | |||||
| </div> | |||||
| </div> | |||||
| <div class="form-group"> | <div class="form-group"> | ||||
| <label class="col-sm-3 control-label" for="domain">{tmpl_var name='domain_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| <input class="form-control" id="domain" maxlength="255" name="domain" size="30" type="text" value="{tmpl_var name='domain'}"> | |||||
| </div> | |||||
| </div> | |||||
| <div class="col-sm-offset-3 col-sm-9"> | |||||
| <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> | |||||
| <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> | |||||
| </div> | |||||
| </div> | |||||
| <div class='page-header'> | |||||
| </div> | |||||
| <b>BBDD</b> | |||||
| <div class="form-group"> | <div class="form-group"> | ||||
| <label class="col-sm-3 control-label" for="client_id">{tmpl_var name='client_id_txt'}</label> | <label class="col-sm-3 control-label" for="client_id">{tmpl_var name='client_id_txt'}</label> | ||||
| <div class="col-sm-9"> | <div class="col-sm-9"> | ||||
| @@ -14,145 +25,133 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <!--div class="form-group"> | |||||
| <label class="col-sm-3 control-label" for="template_id">{tmpl_var name='template_id_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| <select class="form-control" id="template_id" name="template_id"> | |||||
| {tmpl_var name='template_id'} | |||||
| </select> | |||||
| </div> | |||||
| </div--!> | |||||
| <input id="pass_bd" name="ver_bd_fuerza" type="hidden" value="0"> | |||||
| <input id="pass_ftp" name="ver_ftp_fuerza" type="hidden" value="0"> | |||||
| <div class="form-group"> | |||||
| <label class="col-sm-3 control-label">{tmpl_var name='db_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| {tmpl_var name='db'} | |||||
| </div> | |||||
| </div> | |||||
| <tmpl_if name="is_admin"> | |||||
| <!--div class="form-group"> | |||||
| <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label> | |||||
| <div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control"> | |||||
| {tmpl_var name='client_group_id'} | |||||
| </select></div> | |||||
| </div--> | |||||
| </tmpl_if> | |||||
| <tmpl_if name="is_reseller"> | |||||
| <!--div class="form-group"> | |||||
| <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label> | |||||
| <div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control"> | |||||
| {tmpl_var name='client_group_id'} | |||||
| </select></div> | |||||
| </div--> | |||||
| </tmpl_if> | |||||
| <div class="form-group"> | |||||
| <label for="database_user" class="col-sm-3 control-label">{tmpl_var name='database_user_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| <div class="input-group"> | |||||
| <span class="input-group-addon" id="database_user-desc">{tmpl_var name='database_user_prefix'}</span> | |||||
| <input type="text" name="database_user" id="database_user" value="{tmpl_var name='database_user'}" class="form-control" aria-describedby="database_user-desc" /> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <div class="form-group"> | |||||
| <label for="database_password" class="col-sm-3 control-label">{tmpl_var name='database_password_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| <div class="input-group"> | |||||
| <input type="password" name="database_password" id="database_password" value="{tmpl_var name='database_password'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('database_password','repeat_password');" /> | |||||
| <span class="input-group-btn"> | |||||
| <button class="btn btn-default" type="button" onclick="generatePassword('database_password','repeat_password');">{tmpl_var name='generate_password_txt'}</button> | |||||
| </span> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <!--div class="form-group"> | |||||
| <label class="col-sm-3 control-label">{tmpl_var name='password_strength_txt'}</label> | |||||
| <div class="col-sm-9 checkbox"> | |||||
| <div id="passBar2"></div> | |||||
| <span id="passText2"> </span> | |||||
| </div> | |||||
| </div--> | |||||
| <div class="form-group"> | |||||
| <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label> | |||||
| <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('database_password','repeat_password');" /></div></div> | |||||
| <!--div class="form-group"> | |||||
| <div class="col-sm-offset-3 col-sm-9"> | |||||
| <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> | |||||
| <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> | |||||
| </div> | |||||
| </div--> | |||||
| <div class="form-group db"> | |||||
| <label class="col-sm-3 control-label" for="db_type">{tmpl_var name='db_type_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| <select class="form-control" id="db_type" name="db_type"> | |||||
| {tmpl_var name='db_type'} | |||||
| </select> | |||||
| </div> | |||||
| </div> | |||||
| <!--input type="hidden" name="id" value="{tmpl_var name='id'}"> | |||||
| <div class="form-group"> | |||||
| <label class="col-sm-3 control-label">{tmpl_var name='ftp_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| {tmpl_var name='ftp'} | |||||
| </div> | |||||
| </div> | |||||
| <div class="clear"><div class="right"> | |||||
| <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/database_user_edit.php">{tmpl_var name='btn_save_txt'}</button> | |||||
| <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/database_user_list.php">{tmpl_var name='btn_cancel_txt'}</button> | |||||
| </div></div --> | |||||
| <!--div class="form-group"> | |||||
| <label class="col-sm-3 control-label">{tmpl_var name='ssh_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| {tmpl_var name='ssh'} | |||||
| </div> | |||||
| </div> | |||||
| <div class="form-group"> | |||||
| <label class="col-sm-3 control-label">{tmpl_var name='mail_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| {tmpl_var name='mail'} | |||||
| </div> | |||||
| </div> | |||||
| <div class="form-group mail"> | |||||
| <label for="mailboxes" class="col-sm-3 control-label">{tmpl_var name='mailboxes_txt'}</label> | |||||
| <div class="col-sm-6"> | |||||
| <textarea class="form-control" name="mailboxes" id="mailboxes" rows='3' cols='50'>{tmpl_var name='mailboxes'}</textarea> | |||||
| </div> | |||||
| <div class="col-sm-3">{tmpl_var name='mailboxes_help_txt'}</div> | |||||
| </div> | |||||
| <div class="form-group mail"> | |||||
| <label class="col-sm-3 control-label">{tmpl_var name='dkim_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| {tmpl_var name='dkim'} | |||||
| </div> | |||||
| </div> | |||||
| <div class="form-group dkim"> | |||||
| <label for="dkim_selector" class="col-sm-3 control-label">{tmpl_var name='dkim_selector_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| <input type="text" name="dkim_selector" id="dkim_selector" value="{tmpl_var name='dkim_selector'}" class="form-control" /> | |||||
| </div> | |||||
| </div> | |||||
| <div class="form-group dkim"> | |||||
| <label for="dkim_private" class="col-sm-3 control-label">{tmpl_var name='dkim_private_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| <textarea class="form-control" name="dkim_private" id="dkim_private" rows='10' cols='30'>{tmpl_var name='dkim_private'}</textarea> | |||||
| </div> | |||||
| </div> | |||||
| <div class="form-group dkim"> | |||||
| <div class="col-sm-9 col-sm-push-3"> | |||||
| <a class="btn btn-default formbutton-default" href="javascript:setRequest('create')" value="{tmpl_var name='dkim_generate_txt'}">{tmpl_var name='dkim_generate_txt'}</a> | |||||
| </div> | |||||
| </div> | |||||
| <div class="form-group dkim"> | |||||
| <div class="col-sm-9"> | |||||
| <textarea class="form-control" name="dkim_public" style="display:none;" id="dkim_public" rows='5' cols='30' readonly>{tmpl_var name='dkim_public'}</textarea> | |||||
| </div> | |||||
| <div class='page-header'> | |||||
| </div> | </div> | ||||
| <b>FTP</b> | |||||
| <div class="form-group dkim"> | |||||
| <label for="dns_record" class="col-sm-3 control-label">{tmpl_var name='dkim_dns_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| <textarea class="form-control" name="dns_record" id="dns_record" rows='10' cols='30' readonly>{tmpl_var name='dns_record'}</textarea> | |||||
| </div> | |||||
| </div> | |||||
| <div class="form-group"> | |||||
| <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label> | |||||
| <div class="col-sm-9"><select name="parent_domain_id" id="parent_domain_id" class="form-control"> | |||||
| {tmpl_var name='parent_domain_id'} | |||||
| </select></div> | |||||
| </div> | |||||
| <div class="form-group"> | |||||
| <label for="username" class="col-sm-3 control-label">{tmpl_var name='username_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| <div class="input-group"> | |||||
| <span class="input-group-addon" id="username-desc">{tmpl_var name='username_prefix'}</span> | |||||
| <input type="text" name="username" id="username" value="{tmpl_var name='username'}" class="form-control" aria-describedby="username-desc" /> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <div class="form-group"> | |||||
| <label for="passwordftp" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| <div class="input-group"> | |||||
| <input type="password" name="passwordftp" id="passwordftp" value="{tmpl_var name='passwordftp'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('passwordftp','repeat_passwordftp');" /> | |||||
| <span class="input-group-btn"> | |||||
| <button class="btn btn-default" type="button" onclick="generatePassword('passwordftp','repeat_passwordftp');">{tmpl_var name='generate_password_txt'}</button> | |||||
| </span> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <!--div class="form-group"> | |||||
| <label class="col-sm-3 control-label">{tmpl_var name='password_strength_txt'}</label> | |||||
| <div class="col-sm-9 checkbox"> | |||||
| <div id="passBar"></div> | |||||
| <span id="passText"> </span> | |||||
| </div> | |||||
| </div--> | |||||
| <div class="form-group"> | |||||
| <label for="repeat_passwordftp" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label> | |||||
| <div class="col-sm-9"><input type="password" name="repeat_passwordftp" id="repeat_passwordftp" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('passwordftp','repeat_passwordftp');" /></div></div> | |||||
| <!--div class="form-group"> | |||||
| <div class="col-sm-offset-3 col-sm-9"> | |||||
| <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> | |||||
| <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> | |||||
| </div> | |||||
| </div--> | |||||
| <!--div class="form-group"> | |||||
| <label for="quota_size" class="col-sm-3 control-label">{tmpl_var name='quota_size_txt'}</label> | |||||
| <div class="col-sm-9"><div class="input-group"><input type="text" name="quota_size" id="quota_size" value="{tmpl_var name='quota_size'}" class="form-control" aria-describedby="quota_size-desc" /><span class="input-group-addon" id="quota_size-desc">MB</span></div></div> | |||||
| </div> | |||||
| <div class="form-group"> | |||||
| <label class="col-sm-3 control-label">{tmpl_var name='active_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| {tmpl_var name='active'} | |||||
| </div> | |||||
| </div--> | |||||
| <div class="form-group"> | |||||
| <label class="col-sm-3 control-label">{tmpl_var name='dns_txt'}</label> | |||||
| <div class="col-sm-9"> | |||||
| {tmpl_var name='dns'} | |||||
| </div> | |||||
| </div> | |||||
| <div class="form-group dns"> | |||||
| <label for="dns_template_id" class="col-sm-3 control-label">DNS {tmpl_var name='template_id_txt'}</label> | |||||
| <div class="col-sm-9"><select name="dns_template_id" id="dns_template_id" class="form-control" onChange="ISPConfig.submitForm('pageForm','webdns/ftp_bd_service.php')"> | |||||
| {tmpl_var name='dns_template_id'} | |||||
| </select></div> | |||||
| </div> | |||||
| <tmpl_if name="IP_VISIBLE"> | |||||
| <div class="form-group dns"> | |||||
| <label for="dns_ip" class="col-sm-3 control-label">{tmpl_var name='ip_txt'}</label> | |||||
| <div class="col-sm-9"><input type="text" name="dns_ip" id="dns_ip" value="{tmpl_var name='dns_ip'}" class="form-control" /></div></div> | |||||
| </tmpl_if> | |||||
| <tmpl_if name="IPV6_VISIBLE"> | |||||
| <div class="form-group dns"> | |||||
| <label for="dns_ipv6" class="col-sm-3 control-label">{tmpl_var name='ipv6_txt'}</label> | |||||
| <div class="col-sm-9"><input type="text" name="dns_ipv6" id="dns_ipv6" value="{tmpl_var name='dns_ipv6'}" class="form-control" /></div></div> | |||||
| </tmpl_if> | |||||
| <tmpl_if name="NS1_VISIBLE"> | |||||
| <div class="form-group dns"> | |||||
| <label for="dns_ns1" class="col-sm-3 control-label">{tmpl_var name='ns1_txt'}</label> | |||||
| <div class="col-sm-9"><input type="text" name="dns_ns1" id="dns_ns1" value="{tmpl_var name='dns_ns1'}" class="form-control" /></div></div> | |||||
| </tmpl_if> | |||||
| <tmpl_if name="NS2_VISIBLE"> | |||||
| <div class="form-group dns"> | |||||
| <label for="dns_ns2" class="col-sm-3 control-label">{tmpl_var name='ns2_txt'}</label> | |||||
| <div class="col-sm-9"><input type="text" name="dns_ns2" id="dns_ns2" value="{tmpl_var name='dns_ns2'}" class="form-control" /></div></div> | |||||
| </tmpl_if> | |||||
| <tmpl_if name="EMAIL_VISIBLE"> | |||||
| <div class="form-group dns"> | |||||
| <label for="dns_email" class="col-sm-3 control-label">{tmpl_var name='email_txt'}</label> | |||||
| <div class="col-sm-9"><input type="text" name="dns_email" id="dns_email" value="{tmpl_var name='dns_email'}" class="form-control" /></div></div> | |||||
| </tmpl_if> | |||||
| <tmpl_if name="DNSSEC_VISIBLE"> | |||||
| <div class="form-group dns"> | |||||
| <label for="dns_dnssec" class="col-sm-3 control-label">{tmpl_var name='dnssec_txt'}</label> | |||||
| <div class="col-sm-9"><input type="checkbox" name="dns_dnssec" value="Y"></div></div> | |||||
| </tmpl_if> | |||||
| --!> | |||||
| <input id="create_service" name="create" type="hidden" value="0"> | <input id="create_service" name="create" type="hidden" value="0"> | ||||
| <form> | <form> | ||||
| @@ -166,7 +165,7 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <script type="text/javascript"> | |||||
| <!-- script type="text/javascript"> | |||||
| $("input[name=db]").change(function(){ | $("input[name=db]").change(function(){ | ||||
| if($(this).is(':checked')) | if($(this).is(':checked')) | ||||
| { | { | ||||
| @@ -254,5 +253,5 @@ | |||||
| searchFieldWatermark: '', | searchFieldWatermark: '', | ||||
| resultBoxPosition: '' | resultBoxPosition: '' | ||||
| }); | }); | ||||
| </script> | |||||
| </script --!> | |||||
| <script language="JavaScript" type="text/javascript" src="js/mail_domain_dkim.js"></script> | <script language="JavaScript" type="text/javascript" src="js/mail_domain_dkim.js"></script> | ||||
| @@ -23,7 +23,7 @@ require_once '../../lib/app.inc.php'; | |||||
| //$app->auth->check_module_permissions('help'); | //$app->auth->check_module_permissions('help'); | ||||
| //if($_SESSION['s']['user']['typ'] == 'admin') { | //if($_SESSION['s']['user']['typ'] == 'admin') { | ||||
| echo '<p> </p><p> </p><p class="frmTextHead" style="text-align:center;">'.$app->lng('Versión de WebDNS:').' 1.1</p>'; | |||||
| echo '<p> </p><p> </p><p> </p><p class="frmTextHead" style="text-align:center;">'.$app->lng('Versión de WebDNS:').' 1.2 develop</p>'; | |||||
| //} | //} | ||||
| ?> | ?> | ||||