| @@ -581,6 +581,47 @@ class page_action extends tform_actions { | |||||
| return $this->es_subdominio; | 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 | //Crear subdominio | ||||
| function crearSubDominio($remoto, $campoSubDominio){ | function crearSubDominio($remoto, $campoSubDominio){ | ||||
| //para usar variables globales en las funciones hay que declararlas dentro de la funcion. | //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(); | $this->onError(); | ||||
| return; | 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; | //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 domain_id, domain FROM domain WHERE domain = "'.$this->dominio.'"'); | ||||
| $camDominio = $app->db->queryOneRecord('SELECT origin FROM dns_soa WHERE origin LIKE "'.$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', | 'serial' => '1', | ||||
| ); | ); | ||||
| $this->controlUserGrupoId(); | |||||
| echo ('El client_id GLOBAL ' . $this->cli_id . " <br>"); | |||||
| // client group id | // 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']; | $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 | //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('../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> | echo '<br><div class="alert alert-success"><br> | ||||
| Se ha dado de alta Web y Subdominio, <b>'.$this->subdominio.'</b>, ¡Correctamente! | Se ha dado de alta Web y Subdominio, <b>'.$this->subdominio.'</b>, ¡Correctamente! | ||||
| <br><br></div></br>'; | <br><br></div></br>'; | ||||
| @@ -666,16 +714,23 @@ class page_action extends tform_actions { | |||||
| //$this->elServidor = $server_id; | //$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, | //Comprobamos que el resultado para el cliente seleccionado no esta vacío, | ||||
| //si lo esta tomamos los datos del cliente id 0 | //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 = $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'"); | $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_ipv6[ip_address].' '; | ||||
| echo '<br><br>Valor de la consulta '.$dns_ip_servidor[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'])); | $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']; | $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'])); | $res = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$app->functions->intval($fields['client_group_id'])); | ||||
| $client_group_id = $res['groupid']; | $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']); | //echo ('El server es: ' . $dns_servidor['default_webserver']); | ||||
| // add site | // add site | ||||
| $paramsite = array( | $paramsite = array( | ||||
| // "sys_userid" => $this->sys_usuario_id, | |||||
| // "sys_groupid" => $this->cli_grupo_id, | |||||
| 'type' => 'vhost', | 'type' => 'vhost', | ||||
| 'domain' => $fields['domain'], //$this->subdominio, | 'domain' => $fields['domain'], //$this->subdominio, | ||||
| 'server_id' => $server_id,//$dns_servidor['default_webserver'], | '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"; | //$tform_def_file2 = "../sites/form/web_vhost_domain.tform.php"; | ||||
| //$app->tform->loadFormDef($tform_def_file2); | //$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', $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; | //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; | 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']; | $app->tform->errorMessage = $app->tform->wordbook['error_no_ip']; | ||||
| $this->onError(); | $this->onError(); | ||||
| return true; | return true; | ||||
| @@ -797,6 +1014,9 @@ class page_action extends tform_actions { | |||||
| return true; | return true; | ||||
| } | } | ||||
| } | } | ||||
| public $ip4_ultima; | |||||
| public $ip6_ultima; | |||||
| //Creación del las dns y sitio web para un dominio. | //Creación del las dns y sitio web para un dominio. | ||||
| function crearDnsSitioWeb($remoto){ | function crearDnsSitioWeb($remoto){ | ||||
| global $app, $conf; | 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"); | $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']; | $server_id = $tmp['server_id']; | ||||
| //$this->elServidor = $server_id; | //$this->elServidor = $server_id; | ||||
| //echo ('El server id EN ELSE ' . $server_id . " <br>"); | |||||
| } | } | ||||
| //echo ('El server id ' . $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_id_seleccionado = $cliente_id_seleccionadoCaptura['client_id']; | ||||
| $cliente_groupid = $cliente_id_seleccionadoCaptura['groupid']; | $cliente_groupid = $cliente_id_seleccionadoCaptura['groupid']; | ||||
| } | } | ||||
| //IMPORTANTE. | //IMPORTANTE. | ||||
| //Antes se recupero el campo groupid de la tabla sys_group y ahora con este dato tomamos el campo userid | //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 | //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']; | $sysUsuarioId = $sysUsersCaptura['sys_userid']; | ||||
| $sysGrupoId = $sysUsersCaptura['sys_groupid']; | $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 --> client id ' . $cliente_id_seleccionado . " <br>"); | ||||
| echo ('Tabla sys_group --> groupid ' . $cliente_groupid . " <br>"); | echo ('Tabla sys_group --> groupid ' . $cliente_groupid . " <br>"); | ||||
| echo ('Tabla sys_user --> userid ' . $sysUsuarioId . " <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. | //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 | //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'")); | //$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? | //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'"); | //$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. | //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, | //Comprobamos que el resultado para el cliente seleccionado no esta vacío, | ||||
| //si lo esta tomamos los datos del cliente id 0. | //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 = $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'"); | $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_ipv6[ip_address].' '; | ||||
| echo '<br><br>Valor de la consulta '.$dns_ip_servidor[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']; | $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 | // 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); | $tpl_content = str_replace('{DOMAIN}', $fields['domain'], $tpl_content); | ||||
| //Carga de los datos en las variables de las ips. | //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'); | $enable_dnssec = 'N';//(($_POST['dns_dnssec'] == 'Y') ? 'Y' : 'N'); | ||||
| // Parse the template | // 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']; | $dns_servidor = 1; //$servidores['default_dnsserver']; | ||||
| $web_servidor = 1; //$servidores['default_webserver']; | $web_servidor = 1; //$servidores['default_webserver']; | ||||
| }else{ | }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 | // Insert the soa record | ||||
| $sys_userid = $cliente_id_seleccionado;//$fields['client_group_id']; //$_SESSION['s']['user']['userid']; | $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_user" => 'riud', | ||||
| "sys_perm_group" => 'riud', | "sys_perm_group" => 'riud', | ||||
| "sys_perm_other" => '', | "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, | "origin" => $origin, | ||||
| "ns" => $ns, | "ns" => $ns, | ||||
| "mbox" => $mbox, | "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_user" => 'riud', | ||||
| "sys_perm_group" => 'riud', | "sys_perm_group" => 'riud', | ||||
| "sys_perm_other" => '', | "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, | "zone" => $dns_soa_id, | ||||
| "name" => $rr['name'], | "name" => $rr['name'], | ||||
| "type" => $rr['type'], | "type" => $rr['type'], | ||||
| @@ -1022,10 +1276,11 @@ $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FRO | |||||
| 'type' => 'vhost', | 'type' => 'vhost', | ||||
| 'domain' => $fields['domain'], | 'domain' => $fields['domain'], | ||||
| 'server_id' => $web_servidor, //$server_id,//$dns_servidor['default_webserver'], | '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'], | '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', | 'traffic_quota' => '-1', | ||||
| 'hd_quota' => '0', | 'hd_quota' => '0', | ||||
| 'cgi' => 'y', | '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 '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> cliente id ' . $fields['client_id']; | ||||
| print "<pre>";print_r($fields);print "</pre>\n";*/ | 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); | //$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 | |||||
| //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', $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'); | $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; | //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 | //Creo la clase remote para usar las librerias | ||||
| $remote = new remote_actions; | $remote = new remote_actions; | ||||
| if($this->tieneIPs()){ | |||||
| if($this->tieneServidorIPs()){ | |||||
| return; | return; | ||||
| } | } | ||||
| if($this->existeDominio($fields)){ | if($this->existeDominio($fields)){ | ||||
| @@ -1102,6 +1358,13 @@ $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FRO | |||||
| return; | 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'])){ | if($this->comprobarSubDominios($fields['domain'])){ | ||||
| $this->crearSubDominio($remote, $fields['domain']); | $this->crearSubDominio($remote, $fields['domain']); | ||||