Kaynağa Gözat

Comprobación de los distintos servidores asignados a los clientes y captura de la ip4 e ip6. Si no tiene servidores asignados se seleccionan los asignados a admin y sus ips. Solo propagado a la creación de DNS y Sitio Web de estas.

master
David Ramos 8 yıl önce
ebeveyn
işleme
78876f1496
1 değiştirilmiş dosya ile 317 ekleme ve 54 silme
  1. +317
    -54
      new_service_webdns.php

+ 317
- 54
new_service_webdns.php Dosyayı Görüntüle

@@ -581,6 +581,47 @@ class page_action extends tform_actions {
return $this->es_subdominio;
}


public $cli_id;
public $cli_grupo_id;
public $sys_usuario_id;
public $sys_grupo_id;

function controlUserGrupoId(){

global $app, $conf;
$fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);
//IMPORTANTE.
//Con la selección del cliente o admin en la vista.
//Tomamos el grupo del cliente o admin, se toma este valor y se captura el client_id y groupid de la tabla
//sys_group que esta asociada al desplegable de la vista, es en esta tabla donde también esta
//el client_id de admin. En la tabla client no esta el client_id de admin.
if($fields['client_group_id']==0) {
//En la tabla sys_user el userid 1 es admin. No esta en sys_group.
$this->cli_id = 1;
//En la tabla dns_soa y dns_rr se guarda el valor 0 en sys_groupid cuando es admin.
$this->cli_grupo_id = 0;
}else{
$cliente_id_seleccionadoCaptura = $app->db->queryOneRecord('SELECT client_id, groupid FROM sys_group WHERE groupid ="'. $fields['client_group_id'] . '"');
$this->cli_id = $cliente_id_seleccionadoCaptura['client_id'];
$this->cli_grupo_id = $cliente_id_seleccionadoCaptura['groupid'];
}

//IMPORTANTE.
//Antes se recupero el campo groupid de la tabla sys_group y ahora con este dato tomamos el campo userid
//de la tabla sys_user que son los mismos y guardar una relación entre las dos tablas sin usar
//una clave foránea (chapó). Estos datos no estan en la tabla client para admin estan en la tabla sys_user. Les't Go.
if($this->cli_grupo_id == 0){
$this->sys_usuario_id = $this->cli_id;
$this->sys_grupo_id = $this->cli_grupo_id;
}else{
$sysUsersCaptura = $app->db->queryOneRecord('SELECT sys_userid, sys_groupid FROM sys_user WHERE userid ="'. $this->cli_grupo_id . '"');
$this->sys_usuario_id = $sysUsersCaptura['sys_userid'];
$this->sys_grupo_id = $sysUsersCaptura['sys_groupid'];
}
}

//Crear subdominio
function crearSubDominio($remoto, $campoSubDominio){
//para usar variables globales en las funciones hay que declararlas dentro de la funcion.
@@ -598,6 +639,11 @@ class page_action extends tform_actions {
$this->onError();
return;
}
//$this->controlUserGrupoId();
$servidores = $app->db->queryOneRecord("SELECT client_id, default_dnsserver, default_webserver, web_servers FROM client WHERE client_id = ". $this->cli_id);
$dns_servidor = $servidores['default_dnsserver'];
$web_servidor = $servidores['web_servers'];
print "<pre>Servidores: ". $web_servidor . " DNS " . $dns_servidor . " Cliente " . $this->cli_id;
//print "<pre>El dominio es: " . $this->dominio;
//$camDominio = $app->db->queryOneRecord('SELECT domain_id, domain FROM domain WHERE domain = "'.$this->dominio.'"');
$camDominio = $app->db->queryOneRecord('SELECT origin FROM dns_soa WHERE origin LIKE "'.$this->dominio.'%"');
@@ -634,15 +680,17 @@ class page_action extends tform_actions {
'serial' => '1',
);

$this->controlUserGrupoId();
echo ('El client_id GLOBAL ' . $this->cli_id . " <br>");
// client group id
$res = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$app->functions->intval($fields['client_group_id']));
/*$res = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$app->functions->intval($fields['client_group_id']));
$client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]);//$res['groupid'];
echo ('El client group id ' . $client_group_id . " <br>");
echo ('El el res ' . $res['groupid'] . " ");
//print "<pre>"; print_r($paramSubDominios); print "</pre>\n";
echo ('El client group id seleccion ' . $client_group_id . " <br>");
echo ('El groupid de la tabla sys_group ' . $res['groupid'] . " ");*/
print "<pre>"; print_r($paramSubDominios); print "</pre>\n";
//Inserto en bbdd usando la clase remoto que se la he pasado en parámetros de la función
//$resultado = $remoto->insert_query('../dns/form/dns_a.tform.php', $fields['client_id'], $paramSubDominios);
$resultado = $remoto->insert_query('form/dns_a_webdns.tform.php', $fields['client_group_id'], $paramSubDominios);
//$resultado = $remoto->insert_query('form/dns_a_webdns.tform.php', $this->cli_id, /*$fields['client_group_id'],*/ $paramSubDominios);
echo '<br><div class="alert alert-success"><br>
Se ha dado de alta Web y Subdominio, <b>'.$this->subdominio.'</b>, ¡Correctamente!
<br><br></div></br>';
@@ -666,16 +714,23 @@ class page_action extends tform_actions {
//$this->elServidor = $server_id;
}

$dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = ".$fields['client_group_id']." AND ip_type='IPv6'");
/*echo ('Lo seleccionado ' . $fields['client_group_id'] . " <br>");
echo ('Tabla sys_group --> client id ' . $this->cli_id . " <br>");
echo ('Tabla sys_group --> groupid ' . $this->cli_grupo_id . " <br>");

echo ('Tabla sys_user --> userid ' . $this->sys_usuario_id . " <br>");
echo ('Tabla sys_user --> sys_groupid ' . $this->sys_grupo_id . " <br>");*/

//$dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = ".$fields['client_group_id']." AND ip_type='IPv6'");
//Comprobamos que el resultado para el cliente seleccionado no esta vacío,
//si lo esta tomamos los datos del cliente id 0
if(!$dns_ip_servidor_ipv6){
//if(!$dns_ip_servidor_ipv6){
$dns_ip_servidor = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = 1 AND ip_type='IPv4'");
$dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = 1 AND ip_type='IPv6'");
/*echo '<br><br>Valor de la consulta '.$dns_ip_servidor_ipv6[ip_address].' ';
echo '<br><br>Valor de la consulta '.$dns_ip_servidor[ip_address].' ';*/
}
//}

$dns_servidor = $app->db->queryOneRecord("SELECT client_id, default_dnsserver, default_webserver FROM client WHERE client_id = ".$app->functions->intval($fields['client_group_id']));
$clienteID = $dns_servidor['client_id'];
@@ -683,19 +738,12 @@ class page_action extends tform_actions {
$res = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$app->functions->intval($fields['client_group_id']));
$client_group_id = $res['groupid'];
//Captura del servidor id
/*if($this->id > 0) {
$server_id = $this->dataRecord["server_id"];
} else {
// Get the first server ID
$tmp = $app->db->queryOneRecord("SELECT server_id FROM server WHERE web_server = 1 ORDER BY server_name LIMIT 0,1");
$server_id = $tmp['server_id'];
//$this->elServidor = $server_id;
}*/

//echo ('El server es: ' . $dns_servidor['default_webserver']);
// add site
$paramsite = array(
// "sys_userid" => $this->sys_usuario_id,
// "sys_groupid" => $this->cli_grupo_id,
'type' => 'vhost',
'domain' => $fields['domain'], //$this->subdominio,
'server_id' => $server_id,//$dns_servidor['default_webserver'],
@@ -752,26 +800,195 @@ class page_action extends tform_actions {

//$tform_def_file2 = "../sites/form/web_vhost_domain.tform.php";
//$app->tform->loadFormDef($tform_def_file2);
//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 = $remoto->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_group_id'], $paramsite, 'sites:web_vhost_domain:on_after_insert');

//$site_id = $remoto->insert_query('../sites/form/web_vhost_domain.tform.php', $this->sys_usuario_id, $paramsite, 'sites:web_vhost_domain:on_after_insert');
//print '<pre>ID sitio web del subdominio --> ' . $site_id;
}

function tieneIPs(){
public $ip4_servidor_dns;
public $ip6_servidor_dns;
public $ip4_servidor;
public $ip6_servidor;
public $dns_serv;
public $web_serv;

function tieneServidorIPs(){
global $app, $conf;
//$fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);
$this->controlUserGrupoId();
//El cliente 1 es admin.
if($this->cli_id == 1) {
$this->dns_serv = 1;
$this->web_serv = 1;
}else{
$servidores = $app->db->queryOneRecord(
"SELECT client_id, dns_servers, web_servers FROM client
WHERE client_id = ". $this->cli_id);

//Llamada a la tabla server_ip para recuperar la ip4 e ip6
$dns_ip_servidor = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE ip_type='IPv4'");
$dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE ip_type='IPv6'");
$this->dns_serv = $servidores['dns_servers'];
$this->web_serv = $servidores['web_servers'];

//Si el cliente no tiene asignado un servidor se añade por defecto al 1
if(!$this->dns_serv || !$this->web_serv){
$this->dns_serv = 1;
$this->web_serv = 1;
}
}
/*print "<pre>DNS SERVER ";print_r($this->dns_serv);print "</pre>\n";
print "<pre>WEB SERVER ";print_r($this->web_serv);print "</pre>\n";*/
//El cliente 1 es admin
//Captura de las ips del servidor dns
if($this->cli_id == 1){
//Compruebo si hay datos para el client_id 0 y si no existe pruebo con el 1.
//Alguno de los dos tiene que existir por configuración de ispconfig.
$this->ip4_servidor_dns = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "0" AND server_id = "'.$this->dns_serv.'" AND ip_type="IPv4"');
$this->ip6_servidor_dns = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "0" AND server_id = "'.$this->dns_serv.'" AND ip_type="IPv6"');

if(!$this->ip4_servidor_dns){
$this->ip4_servidor_dns = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "1" AND server_id = "'.$this->dns_serv.'" AND ip_type="IPv4"');
/*$this->ip6_servidor_dns = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "1" AND server_id = "'.$this->dns_serv.'" AND ip_type="IPv6"');*/
}
if(!$this->ip6_servidor_dns){
$this->ip6_servidor_dns = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "1" AND server_id = "'.$this->dns_serv.'" AND ip_type="IPv6"');
}
}else{//Comprobamos si el cliente tiene servidor asignado
$this->ip4_servidor_dns = $app->db->queryOneRecord(
'SELECT ip_type, ip_address
FROM server_ip
WHERE client_id = "'.$this->cli_id.'" AND server_id = "'.$this->dns_serv.'" AND ip_type="IPv4"');
$this->ip6_servidor_dns = $app->db->queryOneRecord(
'SELECT ip_type, ip_address
FROM server_ip
WHERE client_id = "'.$this->cli_id.'" AND server_id = "'.$this->dns_serv.'"AND ip_type="IPv6"');

//si no tiene asignado le damos el de admin.
if(!$this->ip4_servidor_dns/* || !$this->ip6_servidor_dns*/){
//Compruebo si hay datos para el client_id 0 y si no existe pruebo con el 1. Es admin ya que este cliente no tiene ip4 ni ip6 asignadas
//Tomamos las de admin.
//Alguno de los dos tiene que existir por configuración de ispconfig.
$this->ip4_servidor_dns = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "0" AND server_id = "'.$this->dns_serv.'" AND ip_type="IPv4"');
//$this->ip6_servidor_dns = $app->db->queryOneRecord('SELECT ip_type, ip_address FROM server_ip WHERE client_id = "0" AND ip_type="IPv6"');

if(!$this->ip4_servidor_dns){
$this->ip4_servidor_dns = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "1" AND server_id = "'.$this->dns_serv.'" AND ip_type="IPv4"');
}
}
if(/*!$this->ip4_servidor_dns ||*/ !$this->ip6_servidor_dns){
//Compruebo si hay datos para el client_id 0 y si no existe pruebo con el 1. Es admin ya que este cliente no tiene ip4 ni ip6 asignadas
//Tomamos las de admin.
//Alguno de los dos tiene que existir por configuración de ispconfig.
//$this->ip4_servidor_dns = $app->db->queryOneRecord('SELECT ip_type, ip_address FROM server_ip WHERE client_id = "0" AND ip_type="IPv4"');
$this->ip6_servidor_dns = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "0" AND server_id = "'.$this->dns_serv.'" AND ip_type="IPv6"');

if(!$this->ip6_servidor_dns){
$this->ip6_servidor_dns = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "1" AND server_id = "'.$this->dns_serv.'" AND ip_type="IPv6"');
}
}
}

$la_ip4 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE ip_type='IPv4'");
$this->ip4_pdf = $la_ip4['ip_address'];
/*print "<pre>IP4 ";print_r($dns_ip_servidor);print "</pre>\n";
print "<pre>IP6 ";print_r($dns_ip_servidor_ipv6);print "</pre>\n";*/
//Captura de las ips del servidor web
if($this->cli_id == 1){
//Compruebo si hay datos para el client_id 0 y si no existe pruebo con el 1.
//Alguno de los dos tiene que existir por configuración de ispconfig.
$this->ip4_servidor_web = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "0" AND server_id = "'.$this->web_serv.'" AND ip_type="IPv4"');
$this->ip6_servidor_web = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "0" AND server_id = "'.$this->web_serv.'" AND ip_type="IPv6"');

if(!$this->ip4_servidor_web){
$this->ip4_servidor_web = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "1" AND server_id = "'.$this->web_serv.'" AND ip_type="IPv4"');
/*$this->ip6_servidor_dns = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "1" AND server_id = "'.$this->web_serv.'" AND ip_type="IPv6"');*/
}
if(!$this->ip6_servidor_web){
$this->ip6_servidor_web = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "1" AND server_id = "'.$this->web_serv.'" AND ip_type="IPv6"');
}
}else{//Comprobamos si el cliente tiene servidor asignado
$this->ip4_servidor_web = $app->db->queryOneRecord(
'SELECT ip_type, ip_address
FROM server_ip
WHERE client_id = "'.$this->cli_id.'" AND server_id = "'.$this->web_serv.'" AND ip_type="IPv4"');
$this->ip6_servidor_web = $app->db->queryOneRecord(
'SELECT ip_type, ip_address
FROM server_ip
WHERE client_id = "'.$this->cli_id.'" AND server_id = "'.$this->web_serv.'"AND ip_type="IPv6"');
//si no tiene asignado le damos el de admin.
if(!$this->ip4_servidor_web/* || !$this->ip6_servidor_dns*/){
//Compruebo si hay datos para el client_id 0 y si no existe pruebo con el 1. Es admin ya que este cliente no tiene ip4 ni ip6 asignadas
//Tomamos las de admin.
//Alguno de los dos tiene que existir por configuración de ispconfig.
$this->ip4_servidor_web = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "0" AND server_id = "'.$this->web_serv.'" AND ip_type="IPv4"');
//$this->ip6_servidor_dns = $app->db->queryOneRecord('SELECT ip_type, ip_address FROM server_ip WHERE client_id = "0" AND ip_type="IPv6"');

if(!$this->ip4_servidor_web){
$this->ip4_servidor_web = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "1" AND server_id = "'.$this->web_serv.'" AND ip_type="IPv4"');
}
}
if(/*!$this->ip4_servidor_dns ||*/ !$this->ip6_servidor_web){
//Compruebo si hay datos para el client_id 0 y si no existe pruebo con el 1. Es admin ya que este cliente no tiene ip4 ni ip6 asignadas
//Tomamos las de admin.
//Alguno de los dos tiene que existir por configuración de ispconfig.
//$this->ip4_servidor_dns = $app->db->queryOneRecord('SELECT ip_type, ip_address FROM server_ip WHERE client_id = "0" AND ip_type="IPv4"');
$this->ip6_servidor_web = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "0" AND server_id = "'.$this->web_serv.'" AND ip_type="IPv6"');

if(!$this->ip6_servidor_web){
$this->ip6_servidor_web = $app->db->queryOneRecord(
'SELECT ip_type, ip_address FROM server_ip
WHERE client_id = "1" AND server_id = "'.$this->web_serv.'" AND ip_type="IPv6"');
}
}
}

if(!$dns_ip_servidor['ip_address'] || !$dns_ip_servidor_ipv6['ip_address']){
//$la_ip4 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE ip_type='IPv4'");
$this->ip4_pdf = $this->ip4_servidor_dns['ip_address'];//$dns_ip_servidor['ip_address'];//$la_ip4['ip_address'];
/*print "<pre>IP4 DNS ";print_r($this->ip4_servidor_dns);print "</pre>\n";
print "<pre>IP6 DNS ";print_r($this->ip6_servidor_dns);print "</pre>\n";
print "<pre>IP4 WEB ";print_r($this->ip4_servidor_web);print "</pre>\n";
print "<pre>IP6 WEB ";print_r($this->ip6_servidor_web);print "</pre>\n";
echo('El cliente ' . $this->cli_id . '<br>');*/
if(!$this->ip4_servidor_dns['ip_address'] || !$this->ip6_servidor_dns['ip_address']){
$app->tform->errorMessage = $app->tform->wordbook['error_no_ip'];
$this->onError();
return true;
}
if(!$this->ip4_servidor_web['ip_address'] || !$this->ip6_servidor_web['ip_address']){
$app->tform->errorMessage = $app->tform->wordbook['error_no_ip'];
$this->onError();
return true;
@@ -797,6 +1014,9 @@ class page_action extends tform_actions {
return true;
}
}

public $ip4_ultima;
public $ip6_ultima;
//Creación del las dns y sitio web para un dominio.
function crearDnsSitioWeb($remoto){
global $app, $conf;
@@ -813,6 +1033,7 @@ class page_action extends tform_actions {
$tmp = $app->db->queryOneRecord("SELECT server_id FROM server WHERE web_server = 1 ORDER BY server_name LIMIT 0,1");
$server_id = $tmp['server_id'];
//$this->elServidor = $server_id;
//echo ('El server id EN ELSE ' . $server_id . " <br>");
}
//echo ('El server id ' . $server_id . " <br>");

@@ -837,6 +1058,7 @@ class page_action extends tform_actions {
$cliente_id_seleccionado = $cliente_id_seleccionadoCaptura['client_id'];
$cliente_groupid = $cliente_id_seleccionadoCaptura['groupid'];
}

//IMPORTANTE.
//Antes se recupero el campo groupid de la tabla sys_group y ahora con este dato tomamos el campo userid
//de la tabla sys_user que son los mismos y guardar una relación entre las dos tablas sin usar
@@ -849,12 +1071,13 @@ class page_action extends tform_actions {
$sysUsuarioId = $sysUsersCaptura['sys_userid'];
$sysGrupoId = $sysUsersCaptura['sys_groupid'];
}
echo ('Lo seleccionado ' . $fields['client_group_id'] . " <br>");

/*echo ('Lo seleccionado ' . $fields['client_group_id'] . " <br>");
echo ('Tabla sys_group --> client id ' . $cliente_id_seleccionado . " <br>");
echo ('Tabla sys_group --> groupid ' . $cliente_groupid . " <br>");

echo ('Tabla sys_user --> userid ' . $sysUsuarioId . " <br>");
echo ('Tabla sys_user --> sys_groupid ' . $sysGrupoId . " <br>");
echo ('Tabla sys_user --> sys_groupid ' . $sysGrupoId . " <br>");*/
//Carga del formulario dns_soa para guardar en base de datos.
@@ -867,33 +1090,63 @@ class page_action extends tform_actions {
//Llamada a la tabla server_ip para recuperar la ip4 e ip6
//$dns_ip_servidor = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = ".$app->functions->intval($fields['client_id']. " AND ip_type='IPv4'"));
//PROVISIONAL. IMPORTANTE. ¿ES CORRECTA ESTA CAPTURA?
$dns_ip_servidor = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = 1 AND ip_type='IPv4'");
$dns_ip_servidor = $app->db->queryOneRecord(
"SELECT ip_type, ip_address FROM server_ip
WHERE client_id = ' . $cliente_id_seleccionado . ' AND ip_type='IPv4'");
//$dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = ".$fields['client_id']." AND ip_type='IPv6'");
//PROVISIONAL.
$dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = 1 AND ip_type='IPv6'");
$dns_ip_servidor_ipv6 = $app->db->queryOneRecord(
"SELECT ip_type, ip_address FROM server_ip
WHERE client_id = ' . $cliente_id_seleccionado . ' AND ip_type='IPv6'");
//print_r($cliente_id_seleccionado);
//print_r($dns_ip_servidor);
//print_r($dns_ip_servidor_ipv6);

//$dns_ip_servidorTest = $app->db->queryOneRecord("SELECT * FROM server_ip /*WHERE client_id = ' . $cliente_id_seleccionado . ' AND ip_type='IPv4'*/");
//print "<pre>"; print_r($dns_ip_servidorTest); print "</pre>\n";

//$dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = ".$fields['client_id']." AND ip_type='IPv6'");
//Comprobamos que el resultado para el cliente seleccionado no esta vacío,
//si lo esta tomamos los datos del cliente id 0.
if(!$dns_ip_servidor_ipv6){
/*if(!$dns_ip_servidor_ipv6){
$dns_ip_servidor = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = 0 AND ip_type='IPv4'");
$dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = 0 AND ip_type='IPv6'");
/*echo '<br><br>Valor de la consulta '.$dns_ip_servidor_ipv6[ip_address].' ';
echo '<br><br>Valor de la consulta '.$dns_ip_servidor[ip_address].' ';*/
// }

print "<pre>DNS SERVER ";print_r($this->dns_serv);print "</pre>\n";
print "<pre>WEB SERVER ";print_r($this->web_serv);print "</pre>\n";
print "<pre>IP4 DNS ";print_r($this->ip4_servidor_dns);print "</pre>\n";
print "<pre>IP6 DNS ";print_r($this->ip6_servidor_dns);print "</pre>\n";
print "<pre>IP4 WEB ";print_r($this->ip4_servidor_web);print "</pre>\n";
print "<pre>IP6 WEB ";print_r($this->ip6_servidor_web);print "</pre>\n";

//Si el servidor es el que tiene asignado el cliente o el de admin por defecto, le damos esta ip4
if($this->dns_serv && $this->ip4_servidor_dns){
$this->ip4_ultima = $this->ip4_servidor_dns;
}
if($this->dns_serv && $this->ip6_servidor_dns){
$this->ip6_ultima = $this->ip6_servidor_dns;
}


if($this->web_serv && $this->ip4_servidor_web){
$this->ip4_ultima = $this->ip4_servidor_web;
}
if($this->web_serv && $this->ip6_servidor_web){
$this->ip6_ultima = $this->ip6_servidor_web;
}
$tpl_content = $template_record['template'];
// Reemplazo la variable que nos encontramos en base de datos por el valor que se ha introducido en el formulario
$tpl_content = str_replace('{DOMAIN}', $fields['domain'], $tpl_content);
//Carga de los datos en las variables de las ips.
$tpl_content = str_replace('{IP}', $dns_ip_servidor['ip_address'], $tpl_content);
$tpl_content = str_replace('{IPV6}', $dns_ip_servidor_ipv6['ip_address'], $tpl_content);
/*$tpl_content = str_replace('{NS1}', '.open6servers.com', $tpl_content);
$tpl_content = str_replace('{NS2}', '.open6servers.com', $tpl_content); */
$tpl_content = str_replace('{IP}', $this->ip4_ultima['ip_address'],/*$dns_ip_servidor['ip_address'],*/ $tpl_content);
$tpl_content = str_replace('{IPV6}', $this->ip6_ultima['ip_address'], /*$dns_ip_servidor_ipv6['ip_address'],*/ $tpl_content);


$enable_dnssec = 'N';//(($_POST['dns_dnssec'] == 'Y') ? 'Y' : 'N');
// Parse the template
@@ -944,12 +1197,13 @@ $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FRO
$dns_servidor = 1; //$servidores['default_dnsserver'];
$web_servidor = 1; //$servidores['default_webserver'];
}else{
$servidores = $app->db->queryOneRecord("SELECT client_id, default_dnsserver, default_webserver FROM client WHERE client_id = ". $cliente_id_seleccionado);
$dns_servidor = $servidores['default_dnsserver'];
$web_servidor = $servidores['default_webserver'];
$servidores = $app->db->queryOneRecord("SELECT client_id, dns_servers, web_servers FROM client WHERE client_id = ". $cliente_id_seleccionado);
$dns_servidor = $servidores['dns_servers'];
//$web_servidor = $servidores['default_webserver'];
$web_servidor = $servidores['web_servers'];
}
echo ('El servidor dns es ' . $dns_servidor. " y el servidor web es " . $web_servidor);
//echo ('El servidor dns es ' . $dns_servidor. " y el servidor web es " . $web_servidor);
// Insert the soa record
$sys_userid = $cliente_id_seleccionado;//$fields['client_group_id']; //$_SESSION['s']['user']['userid'];
@@ -972,7 +1226,7 @@ $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FRO
"sys_perm_user" => 'riud',
"sys_perm_group" => 'riud',
"sys_perm_other" => '',
"server_id" => $dns_servidor, //$server_id,//$dns_servidor['default_dnsserver'],
"server_id" => $this->dns_serv, //$dns_servidor,//$server_id,//$dns_servidor, //$server_id,//$dns_servidor['default_dnsserver'],
"origin" => $origin,
"ns" => $ns,
"mbox" => $mbox,
@@ -999,7 +1253,7 @@ $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FRO
"sys_perm_user" => 'riud',
"sys_perm_group" => 'riud',
"sys_perm_other" => '',
"server_id" => $dns_servidor, //$server_id,//$dns_servidor['default_dnsserver'],
"server_id" => $this->dns_serv,//$dns_servidor,//$server_id, //$dns_servidor, //$server_id,//$dns_servidor['default_dnsserver'],
"zone" => $dns_soa_id,
"name" => $rr['name'],
"type" => $rr['type'],
@@ -1022,10 +1276,11 @@ $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FRO
'type' => 'vhost',
'domain' => $fields['domain'],
'server_id' => $web_servidor, //$server_id,//$dns_servidor['default_webserver'],
'sys_userid' => $sysUsuarioId, //$fields['client_group_id'],//$sys_userid,
'sys_groupid' => $cliente_groupid,
//IMPORTANTE. Aquí no se ponen los campos sys_userid ni sys_groupid, el evento on_after_insert
//'sys_userid' => $sysUsuarioId, //$fields['client_group_id'],//$sys_userid,
//'sys_groupid' => $cliente_groupid,
'ip_address' => '*', //$dns_ip_servidor['ip_address'],
'ipv6_address' => $dns_ip_servidor_ipv6['ip_address'],
'ipv6_address' => $this->ip6_ultima['ip_address'], //$dns_ip_servidor_ipv6['ip_address'],
'traffic_quota' => '-1',
'hd_quota' => '0',
'cgi' => 'y',
@@ -1063,7 +1318,7 @@ $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FRO
);

//print 'Valores: ' . $dns_ip_servidor_ipv6 . " " . $formulario . " Parametros: " ;
//print "<pre>"; print_r($paramsite); print "</pre>\n";
print "<pre>"; print_r($paramsite); print "</pre>\n";

/*print '<pre> cliente id ' . $fields['client_id'];
print "<pre>";print_r($fields);print "</pre>\n";*/
@@ -1072,7 +1327,8 @@ $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FRO
//$this->crearBaseDatosFtp($remote);
//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
//IMPORTANTE. 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 = $remoto->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_group_id'], $paramsite, 'sites:web_vhost_domain:on_after_insert');
$site_id = $remoto->insert_query('../sites/form/web_vhost_domain.tform.php', $cliente_id_seleccionado, /*$fields['client_group_id'],*/ $paramsite, 'sites:web_vhost_domain:on_after_insert');
//print 'Sitio id '. $site_id;
@@ -1086,7 +1342,7 @@ $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FRO
//Creo la clase remote para usar las librerias
$remote = new remote_actions;
if($this->tieneIPs()){
if($this->tieneServidorIPs()){
return;
}
if($this->existeDominio($fields)){
@@ -1102,6 +1358,13 @@ $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FRO
return;
}
/*echo ('Lo seleccionado ' . $fields['client_group_id'] . " <br>");
echo ('Tabla sys_group --> client id ' . $this->cli_id . " <br>");
echo ('Tabla sys_group --> groupid ' . $this->cli_grupo_id . " <br>");

echo ('Tabla sys_user --> userid ' . $this->sys_usuario_id . " <br>");
echo ('Tabla sys_user --> sys_groupid ' . $this->sys_grupo_id . " <br>");*/

if($this->comprobarSubDominios($fields['domain'])){
$this->crearSubDominio($remote, $fields['domain']);


Yükleniyor…
İptal
Kaydet