| @@ -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']); | |||