diff --git a/new_service_webdns.php b/new_service_webdns.php index 20bc3f8..9b677d6 100755 --- a/new_service_webdns.php +++ b/new_service_webdns.php @@ -414,9 +414,11 @@ class page_action extends tform_actions { $generated_usernameBBDD = $this->generaNombreBD();//$fields['client_id'].substr(sha1(rand()), 0, 10);//client_prefix.substr(sha1(rand()), 0, 8); //print "
"; print_r($generated_usernameBBDD); print "
\n"; - $sitio_id = $app->db->queryOneRecord('SELECT domain_id, domain FROM web_domain WHERE domain = "'.$fields['domain'].'"'); + $sitio_id = $app->db->queryOneRecord( + 'SELECT domain_id, domain FROM web_domain WHERE domain = "'.$fields['domain'].'"'); + //print "
"; print_r($camDnsRR); print "
\n"; - $camDnsRR = $app->db->queryOneRecord('SELECT server_id, zone FROM dns_rr WHERE name LIKE "'.$this->dominio.'%"'); + $camDnsRR = $app->db->queryOneRecord('SELECT server_id, zone FROM dns_rr WHERE name LIKE "'.$this->dominio.'."'); //print "
"; print_r($fields['client_id']); print "
\n"; $clavePass = $this->generaPass(); @@ -427,12 +429,16 @@ class page_action extends tform_actions { //$dbname_prefix = $app->tools_sites->replacePrefix($global_config['dbname_prefix'], $this->dataRecord); $ftpuser_prefix = $app->tools_sites->replacePrefix($global_config['ftpuser_prefix'], $this->dataRecord); + /*$this->sys_usuario_id = $this->cli_id; + $this->sys_grupo_id = $this->cli_grupo_id;*/ + //"sys_userid" => $sysUsuarioId, //$fields['client_group_id'],//$sys_userid, + //"sys_groupid" => $cliente_groupid, //$client_group_id, // añado database user con su prefix $db_user_params = array( - 'server_id' => $camDnsRR['server_id'], - 'sysgroup_id' => $fields['client_group_id'], - 'sys_userid' => $fields['client_group_id'], + 'server_id' => $this->bbdd_serv, //$camDnsRR['server_id'], + 'sysgroup_id' => $this->sys_grupo_id, //$fields['client_group_id'], + 'sys_userid' => $this->sys_usuario_id, //$fields['client_group_id'], 'database_user' => $generated_usernameBBDD, //$dbuser_prefix3 . $generated_usernameBBDD, 'database_user_prefix' => $this->valor_prefix, 'database_password' => $clavePass//substr(sha1($dbuser_prefix . $generated_usernameBBDD), 0, 16) @@ -447,12 +453,12 @@ class page_action extends tform_actions { //print "
". $this->pass_db_txt; //print "
"; print_r($fields); print "
\n"; - $db_user_id = $remoto->insert_query('../sites/form/database_user.tform.php', $fields['client_group_id'], $db_user_params, 'sites:web_database_user:on_after_insert'); + $db_user_id = $remoto->insert_query('../sites/form/database_user.tform.php', $this->cli_id,/*$fields['client_group_id'],*/ $db_user_params, 'sites:web_database_user:on_after_insert'); // add database $paramsBD = array( - 'server_id' => $camDnsRR['server_id'], - 'sysgroup_id' => $fields['client_group_id'], + 'server_id' => $this->bbdd_serv, //$camDnsRR['server_id'], + 'sysgroup_id' => $this->sys_grupo_id, //$fields['client_group_id'], 'parent_domain_id' => $sitio_id['domain_id'], 'type' => 'mysql', 'database_quota' => '-1', @@ -470,7 +476,7 @@ class page_action extends tform_actions { $this->nombre_db_txt = $paramsBD['database_name']; - $remoto->sites_database_add($fields['client_group_id'], $paramsBD); + $remoto->sites_database_add($this->cli_id,/*$fields['client_group_id'],*/ $paramsBD); // get site data para usarlo en la creación de la cuenta ftp, otra forma de cargar una tupla dandole un id //$app->uses('remoting_lib'); @@ -480,7 +486,7 @@ class page_action extends tform_actions { $this->nombre_user_ftp = $this->generaNombreFTP(); // add ftp user $ftp_params = array( - 'server_id' => $camDnsRR['server_id'], + 'server_id' => $this->web_serv, //$camDnsRR['server_id'], 'parent_domain_id' => $sitio_id['domain_id'], 'username' => $this->valor_prefix_ftp . $this->nombre_user_ftp, //$ftpuser_prefix . $generated_username, 'username_prefix' => $this->valor_prefix_ftp, @@ -873,8 +879,14 @@ class page_action extends tform_actions { public $ip6_servidor_dns; public $ip4_servidor_web; public $ip6_servidor_web; + public $ip4_servidor_bbdd; + public $ip6_servidor_bbdd; + public $ip4_servidor_ftp; + public $ip6_servidor_ftp; public $dns_serv; public $web_serv; + public $bbdd_serv; + public $ftp_serv; function tieneServidorIPs(){ global $app, $conf; @@ -885,19 +897,30 @@ class page_action extends tform_actions { if($this->cli_id == 1) { $this->dns_serv = 1; $this->web_serv = 1; + $this->bbdd_serv = 1; + //$this->ftp_serv = 1; }else{ $servidores = $app->db->queryOneRecord( - "SELECT client_id, dns_servers, web_servers FROM client + "SELECT client_id, dns_servers, web_servers, db_servers FROM client WHERE client_id = ". $this->cli_id); $this->dns_serv = $servidores['dns_servers']; $this->web_serv = $servidores['web_servers']; + $this->bbdd_serv = $servidores['db_servers']; //Si el cliente no tiene asignado un servidor se añade por defecto al 1 - if(!$this->dns_serv || !$this->web_serv){ + if(!$this->dns_serv){ $this->dns_serv = 1; + + } + //Si el cliente no tiene asignado un servidor se añade por defecto al 1 + if(!$this->web_serv){ $this->web_serv = 1; } + //Si el cliente no tiene asignado un servidor se añade por defecto al 1 + if(!$this->bbdd_serv){ + $this->bbdd_serv = 1; + } } /*print "
DNS SERVER ";print_r($this->dns_serv);print "
\n"; print "
WEB SERVER ";print_r($this->web_serv);print "
\n";*/ @@ -985,9 +1008,6 @@ class page_action extends tform_actions { $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( @@ -1036,13 +1056,76 @@ class page_action extends tform_actions { } } } + //Captura de las ips del servidor bbdd + 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_bbdd = $app->db->queryOneRecord( + 'SELECT ip_type, ip_address FROM server_ip + WHERE client_id = "0" AND server_id = "'.$this->bbdd_serv.'" AND ip_type="IPv4"'); + $this->ip6_servidor_bbdd = $app->db->queryOneRecord( + 'SELECT ip_type, ip_address FROM server_ip + WHERE client_id = "0" AND server_id = "'.$this->bbdd_serv.'" AND ip_type="IPv6"'); + + if(!$this->ip4_servidor_bbdd){ + $this->ip4_servidor_bbdd = $app->db->queryOneRecord( + 'SELECT ip_type, ip_address FROM server_ip + WHERE client_id = "1" AND server_id = "'.$this->bbdd_serv.'" AND ip_type="IPv4"'); + } + if(!$this->ip6_servidor_bbdd){ + $this->ip6_servidor_bbdd = $app->db->queryOneRecord( + 'SELECT ip_type, ip_address FROM server_ip + WHERE client_id = "1" AND server_id = "'.$this->bbdd_serv.'" AND ip_type="IPv6"'); + } + }else{//Comprobamos si el cliente tiene servidor asignado + $this->ip4_servidor_bbdd = $app->db->queryOneRecord( + 'SELECT ip_type, ip_address + FROM server_ip + WHERE client_id = "'.$this->cli_id.'" AND server_id = "'.$this->bbdd_serv.'" AND ip_type="IPv4"'); + $this->ip6_servidor_bbdd = $app->db->queryOneRecord( + 'SELECT ip_type, ip_address + FROM server_ip + WHERE client_id = "'.$this->cli_id.'" AND server_id = "'.$this->bbdd_serv.'"AND ip_type="IPv6"'); + + //si no tiene asignado le damos el de admin. + if(!$this->ip4_servidor_bbdd){ + //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_bbdd = $app->db->queryOneRecord( + 'SELECT ip_type, ip_address FROM server_ip + WHERE client_id = "0" AND server_id = "'.$this->bbdd_serv.'" AND ip_type="IPv4"'); + //$this->ip6_servidor_bbdd = $app->db->queryOneRecord('SELECT ip_type, ip_address FROM server_ip WHERE client_id = "0" AND ip_type="IPv6"'); + if(!$this->ip4_servidor_bbdd){ + $this->ip4_servidor_bbdd = $app->db->queryOneRecord( + 'SELECT ip_type, ip_address FROM server_ip + WHERE client_id = "1" AND server_id = "'.$this->bbdd_serv.'" AND ip_type="IPv4"'); + } + } + if(!$this->ip6_servidor_bbdd){ + //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->ip6_servidor_bbdd = $app->db->queryOneRecord( + 'SELECT ip_type, ip_address FROM server_ip + WHERE client_id = "0" AND server_id = "'.$this->bbdd_serv.'" AND ip_type="IPv6"'); + + if(!$this->ip6_servidor_bbdd){ + $this->ip6_servidor_bbdd = $app->db->queryOneRecord( + 'SELECT ip_type, ip_address FROM server_ip + WHERE client_id = "1" AND server_id = "'.$this->bbdd_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 = $this->ip4_servidor_dns['ip_address'];//$dns_ip_servidor['ip_address'];//$la_ip4['ip_address']; /*print "
IP4 DNS ";print_r($this->ip4_servidor_dns);print "
\n"; print "
IP6 DNS ";print_r($this->ip6_servidor_dns);print "
\n"; print "
IP4 WEB ";print_r($this->ip4_servidor_web);print "
\n"; - print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n"; + print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n"; + print "
IP4 BBDD ";print_r($this->ip4_servidor_bbdd);print "
\n"; + print "
IP6 BBDD ";print_r($this->ip6_servidor_bbdd);print "
\n"; echo('El cliente ' . $this->cli_id . '
');*/ if(!$this->ip4_servidor_dns['ip_address'] || !$this->ip6_servidor_dns['ip_address']){ $app->tform->errorMessage = $app->tform->wordbook['error_no_ip']; @@ -1053,6 +1136,11 @@ class page_action extends tform_actions { $app->tform->errorMessage = $app->tform->wordbook['error_no_ip']; $this->onError(); return true; + } + if(!$this->ip4_servidor_bbdd['ip_address'] || !$this->ip6_servidor_bbdd['ip_address']){ + $app->tform->errorMessage = $app->tform->wordbook['error_no_ip']; + $this->onError(); + return true; } return false; } @@ -1431,7 +1519,7 @@ print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/ $this->crearSubDominio($remote, $fields['domain']); if(!$this->subdom_error){ $this->crearSitioWebSubdominio($remote); - //$this->crearBaseDatosFtp($remote); + $this->crearBaseDatosFtp($remote); } } else { @@ -1446,7 +1534,7 @@ print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/ //IMPORTANTE, es necesario cargar nuestro formulario para poder ejecutar la función que crea //la base de datos y el ftp ya que hay datos que tomamos de él antes de ejecutarla. $app->tform->loadFormDef('form/new_service_webdns.tform.php'); - //$this->crearBaseDatosFtp($remote); + $this->crearBaseDatosFtp($remote); }else{ $this->onError(); return;