diff --git a/new_service_webdns.php b/new_service_webdns.php index 88d25b7..bf9b827 100755 --- a/new_service_webdns.php +++ b/new_service_webdns.php @@ -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 "
Servidores: ". $web_servidor . " DNS " . $dns_servidor . " Cliente " . $this->cli_id;
 		//print "
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 . " 
"); // 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 . "
"); - echo ('El el res ' . $res['groupid'] . " "); - //print "
"; print_r($paramSubDominios); print "
\n"; + echo ('El client group id seleccion ' . $client_group_id . "
"); + echo ('El groupid de la tabla sys_group ' . $res['groupid'] . " ");*/ + print "
"; print_r($paramSubDominios); print "
\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 '

Se ha dado de alta Web y Subdominio, '.$this->subdominio.', ¡Correctamente!


'; @@ -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'] . "
"); + echo ('Tabla sys_group --> client id ' . $this->cli_id . "
"); + echo ('Tabla sys_group --> groupid ' . $this->cli_grupo_id . "
"); + + echo ('Tabla sys_user --> userid ' . $this->sys_usuario_id . "
"); + echo ('Tabla sys_user --> sys_groupid ' . $this->sys_grupo_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'"); //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 '

Valor de la consulta '.$dns_ip_servidor_ipv6[ip_address].' '; echo '

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 '
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 "
DNS SERVER ";print_r($this->dns_serv);print "
\n"; + print "
WEB SERVER ";print_r($this->web_serv);print "
\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 "
IP4 ";print_r($dns_ip_servidor);print "
\n"; - print "
IP6 ";print_r($dns_ip_servidor_ipv6);print "
\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 "
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"; + 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']; + $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 . "
"); } //echo ('El server id ' . $server_id . "
"); @@ -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'] . "
"); + + /*echo ('Lo seleccionado ' . $fields['client_group_id'] . "
"); echo ('Tabla sys_group --> client id ' . $cliente_id_seleccionado . "
"); echo ('Tabla sys_group --> groupid ' . $cliente_groupid . "
"); echo ('Tabla sys_user --> userid ' . $sysUsuarioId . "
"); - echo ('Tabla sys_user --> sys_groupid ' . $sysGrupoId . "
"); + echo ('Tabla sys_user --> sys_groupid ' . $sysGrupoId . "
");*/ //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 "
"; print_r($dns_ip_servidorTest); print "
\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 '

Valor de la consulta '.$dns_ip_servidor_ipv6[ip_address].' '; echo '

Valor de la consulta '.$dns_ip_servidor[ip_address].' ';*/ +// } + +print "
DNS SERVER ";print_r($this->dns_serv);print "
\n"; +print "
WEB SERVER ";print_r($this->web_serv);print "
\n"; +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"; + + //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 "
"; print_r($paramsite); print "
\n"; + print "
"; print_r($paramsite); print "
\n"; /*print '
 cliente id ' . $fields['client_id'];
 		print "
";print_r($fields);print "
\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'] . "
"); + echo ('Tabla sys_group --> client id ' . $this->cli_id . "
"); + echo ('Tabla sys_group --> groupid ' . $this->cli_grupo_id . "
"); + + echo ('Tabla sys_user --> userid ' . $this->sys_usuario_id . "
"); + echo ('Tabla sys_user --> sys_groupid ' . $this->sys_grupo_id . "
");*/ + if($this->comprobarSubDominios($fields['domain'])){ $this->crearSubDominio($remote, $fields['domain']);