diff --git a/new_service_webdns.php b/new_service_webdns.php index e86dc08..ec96f25 100755 --- a/new_service_webdns.php +++ b/new_service_webdns.php @@ -16,12 +16,6 @@ $tform_def_file = "form/new_service_webdns.tform.php"; //Check permissions for module $app->auth->check_module_permissions('webdns'); -//Check the module permissions and redirect if not allowed. -/*if(!stristr($_SESSION['s']['user']['modules'],'customdns')) { - header('Location: ../index.php'); - die; -}*/ - //Loading classes a usar. $app->uses('tpl,tform,tform_actions,remoting,tools_sites,remoting_lib,remoting_dns'); $app->load('tform_actions'); @@ -32,7 +26,7 @@ class page_action extends tform_actions { function onShowNew() { global $app; - // we will check only users, not admins + //Si es usuario no puede usar el módulo webdns if($_SESSION['s']['user']['typ'] == 'user') { $app->error($app->tform->wordbook["error_usuario_no_permitido_webdns"]); } @@ -42,21 +36,38 @@ class page_action extends tform_actions { function onShowEnd() { global $app, $conf, $interfaceConf; - /* - * If the names are restricted -> remove the restriction, so that the - * data can be edited - */ - //Get the database user prefix + + $this->tratarVariablesPrefix(); $app->uses('getconf,tools_sites'); $global_config = $app->getconf->get_global_config('sites'); - $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $this->dataRecord); $ftpuser_prefix = $app->tools_sites->replacePrefix($global_config['ftpuser_prefix'], $this->dataRecord); - if ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + if ($this->dataRecord['username'] != ""){ + /* REMOVE the restriction */ + $app->tpl->setVar("username", $app->tools_sites->removePrefix($this->dataRecord['username'], $this->dataRecord['username_prefix'], $ftpuser_prefix)); + } + + if($this->dataRecord['username'] == "") { + $app->tpl->setVar("username_prefix", $ftpuser_prefix); + } else { + $app->tpl->setVar("username_prefix", $app->tools_sites->getPrefix($this->dataRecord['username_prefix'], $ftpuser_prefix, $global_config['ftpuser_prefix'])); + } + //Get the database user prefix + $app->uses('getconf,tools_sites'); + $global_config = $app->getconf->get_global_config('sites'); + + //* Client: If the logged in user is not admin and has no sub clients (no reseller) +/* if ($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { // Get the limits of the client $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); $client = $app->db->queryOneRecord("SELECT client.company_name, client.contact_name, client.client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); + //* Reseller: If the logged in user is not admin and has sub clients (reseller) + }elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + // Get the limits of the client + $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT client.company_name, client.contact_name, client.client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); + // Fill the client select field $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ? ORDER BY client.company_name, client.contact_name, sys_group.name"; $records = $app->db->queryAllRecords($sql, $client['client_id']); @@ -70,7 +81,9 @@ class page_action extends tform_actions { } } $app->tpl->setVar("client_group_id", $client_select); - } elseif($_SESSION["s"]["user"]["typ"] == 'admin') { + + //* Es Admin + } else*/if($_SESSION["s"]["user"]["typ"] == 'admin') { // Fill the client select field $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.client_id > 0 ORDER BY client.company_name, client.contact_name, sys_group.name"; $clients = $app->db->queryAllRecords($sql); @@ -95,6 +108,9 @@ class page_action extends tform_actions { $app->tpl->setVar("database_user_prefix", $dbuser_prefix); } else { $app->tpl->setVar("database_user_prefix", $app->tools_sites->getPrefix($this->dataRecord['database_user_prefix'], $dbuser_prefix, $global_config['dbuser_prefix'])); + $app->tools_sites->getPrefix($this->dataRecord['database_user_prefix'], $dbuser_prefix, $global_config['dbuser_prefix']); + $datos_prefix = $app->tools_sites->getPrefix($this->dataRecord['database_user_prefix'], $dbuser_prefix, $global_config['dbuser_prefix']); + $fields['database_user_prefix'] = $datos_prefix; } if ($this->dataRecord['username'] != ""){ @@ -107,6 +123,7 @@ class page_action extends tform_actions { } else { $app->tpl->setVar("username_prefix", $app->tools_sites->getPrefix($this->dataRecord['username_prefix'], $ftpuser_prefix, $global_config['ftpuser_prefix'])); } + parent::onShowEnd(); } @@ -125,7 +142,6 @@ class page_action extends tform_actions { $this->dataRecord['username_prefix'] = $ftpuser_prefix; $this->dataRecord['database_user_prefix'] = $dbuser_prefix; - $valor2 = $this->dataRecord['database_user_prefix'] = $dbuser_prefix; $this->valor_prefix = $this->dataRecord['database_user_prefix'] = $dbuser_prefix; $this->valor_prefix_ftp = $this->dataRecord['username_prefix'] = $ftpuser_prefix; @@ -147,6 +163,21 @@ class page_action extends tform_actions { } $this->dataRecord['server_id'] = 0; // we need this on all servers + + if ($this->dataRecord['database_user'] != ""){ + /* REMOVE the restriction */ + $app->tpl->setVar("database_user", $app->tools_sites->removePrefix($this->dataRecord['database_user'], $this->dataRecord['database_user_prefix'], $dbuser_prefix)); + } + + if($this->dataRecord['database_user'] == "") { + $app->tpl->setVar("database_user_prefix", $dbuser_prefix); + } else { + $app->tpl->setVar("database_user_prefix", $app->tools_sites->getPrefix($this->dataRecord['database_user_prefix'], $dbuser_prefix, $global_config['dbuser_prefix'])); + } + //* Reseller: If the logged in user is not admin and has sub clients (is a reseller) +/* if($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $this->valor_prefix = $dbuser_prefix; + }*/ } @@ -169,38 +200,9 @@ class page_action extends tform_actions { function generaNombreFTP(){ - global $app, $conf, $interfaceConf; - - //Get the database name and database user prefix - $app->uses('getconf,tools_sites'); - $global_config = $app->getconf->get_global_config('sites'); - $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $this->dataRecord); - - $dbuser_prefix_valor = $app->tpl->setVar("database_name", $app->tools_sites->removePrefix($this->dataRecord['database_name'], $this->dataRecord['database_name_prefix'], $dbname_prefix)); - //echo ('El prefix ' . $dbuser_prefix); - $this->dataRecord['database_user_prefix'] = $dbuser_prefix_valor; - //echo ('PreFIX ' . '{user}' . str_replace('{user}', htmlentities($dbuser_prefix . $this->dataRecord['database_user'], ENT_QUOTES, 'UTF-8'))); - if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) - $app->tform->errorMessage .= str_replace('{user}', htmlentities($dbuser_prefix . $this->dataRecord['database_user'], ENT_QUOTES, 'UTF-8'), - $app->tform->wordbook["database_user_error_len"]).'
'; - - //Check database user against blacklist - $dbuser_blacklist = array($conf['db_user'], 'mysql', 'root'); - if(is_array($dbuser_blacklist) && in_array($dbuser_prefix . $this->dataRecord['database_user'], $dbuser_blacklist)) { - $app->tform->errorMessage .= $app->lng('Database user not allowed.').'
'; - } - - /* restrict the names */ - /* crop user names if they are too long -> mysql: user: 16 chars / db: 64 chars */ - if ($app->tform->errorMessage == ''){ - $this->dataRecord['database_user'] = substr($dbuser_prefix . $this->dataRecord['database_user'], 0, 16); - } - - $this->dataRecord['server_id'] = 0; // we need this on all servers $this->tratarVariablesPrefix(); - //echo ('PreFIX Valor ' . $dbuser_prefix_valor); //Cadena de caractares para construir el nombre. $cadena = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ23456789"; @@ -256,38 +258,9 @@ class page_action extends tform_actions { function generaNombreBD(){ - global $app, $conf, $interfaceConf; - - //Get the database name and database user prefix - $app->uses('getconf,tools_sites'); - $global_config = $app->getconf->get_global_config('sites'); - $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $this->dataRecord); - - $dbuser_prefix_valor = $app->tpl->setVar("database_name", $app->tools_sites->removePrefix($this->dataRecord['database_name'], $this->dataRecord['database_name_prefix'], $dbname_prefix)); - //echo ('El prefix ' . $dbuser_prefix); - $this->dataRecord['database_user_prefix'] = $dbuser_prefix_valor; - //echo ('PreFIX ' . '{user}' . str_replace('{user}', htmlentities($dbuser_prefix . $this->dataRecord['database_user'], ENT_QUOTES, 'UTF-8'))); - if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) - $app->tform->errorMessage .= str_replace('{user}', htmlentities($dbuser_prefix . $this->dataRecord['database_user'], ENT_QUOTES, 'UTF-8'), - $app->tform->wordbook["database_user_error_len"]).'
'; - - //Check database user against blacklist - $dbuser_blacklist = array($conf['db_user'], 'mysql', 'root'); - if(is_array($dbuser_blacklist) && in_array($dbuser_prefix . $this->dataRecord['database_user'], $dbuser_blacklist)) { - $app->tform->errorMessage .= $app->lng('Database user not allowed.').'
'; - } - - /* restrict the names */ - /* crop user names if they are too long -> mysql: user: 16 chars / db: 64 chars */ - if ($app->tform->errorMessage == ''){ - $this->dataRecord['database_user'] = substr($dbuser_prefix . $this->dataRecord['database_user'], 0, 16); - } - - $this->dataRecord['server_id'] = 0; // we need this on all servers $this->tratarVariablesPrefix(); - //echo ('PreFIX Valor ' . $dbuser_prefix_valor); //Cadena de caractares para construir las nombre. $cadena = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ23456789"; //$cadSpeciales = "!@#_"; @@ -313,36 +286,6 @@ class page_action extends tform_actions { return $this->valor_prefix . $nombre; } - - /*function comprobarPass($claveGenerada){ - //compruebo que el tamaño del string sea válido. - if (strlen($claveGenerada)<3 || strlen($claveGenerada)>20){ - echo $claveGenerada . " no es válida0
"; - return false; - } - - //compruebo que los caracteres sean los permitidos - $alphachars = "abcdefghijkmnopqrstuvwxyz"; - $upperchars = "ABCDEFGHJKLMNPQRSTUVWXYZ"; - $numchars = "23456789"; - $specialchars = "!@#_"; - - //$permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"; - - - if (ereg("^[a-zA-Z0-9\-_]{3,20}$", $claveGenerada)) { - echo $claveGenerada . " es válido
"; - return true; - } else { - echo $claveGenerada . " NO válido
"; - return false; - } - - echo $claveGenerada . " es válido
"; - return true; - }*/ - - function crearBaseDatosFtp($remoto){ global $app, $conf; @@ -352,24 +295,16 @@ class page_action extends tform_actions { $server_config_array = $app->getconf->get_global_config(); $generated_usernameBBDD = $this->generaNombreBD(); - //print "
"; print_r($generated_usernameBBDD); print "
\n"; + $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.'."'); - //print "
"; print_r($fields['client_id']); print "
\n"; - $clavePass = $this->generaPass(); - //*Recupero todos los prefix necesarios - $app->uses('getconf,tools_sites'); - $global_config = $app->getconf->get_global_config('sites'); - $ftpuser_prefix = $app->tools_sites->replacePrefix($global_config['ftpuser_prefix'], $this->dataRecord); //añado database user con su prefix $db_user_params = array( 'server_id' => $this->bbdd_serv, - 'sysgroup_id' => $this->sys_grupo_id, + 'sysgroup_id' => $this->cli_grupo_id, //$this->sys_grupo_id, 'sys_userid' => $this->sys_usuario_id, 'sys_perm_other' => '-', 'database_user' => $generated_usernameBBDD, @@ -386,12 +321,21 @@ 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', $this->cli_id, $db_user_params, 'sites:web_database_user:on_after_insert'); - + //IMPORTANTE. PARA QUE EL PLUGING FUNCIONE HAY QUE CARGAR ANTES EL FORMULARIO + //DE LO QUE SE QUIERE CREAR EN ESTE CASO BBDD. NO FUNCIONA SE LANZA EL AFTER INSERT EN NUESTRA FUNCION. + $tform_def_file = "../sites/form/database_user.tform.php"; + $app->tform->loadFormDef($tform_def_file); + + $db_user_id = $remoto->insert_query('../sites/form/database_user.tform.php', + $this->cli_id, $db_user_params, 'sites:web_database_user:on_after_insert'); + + $global_web_config = $app->getconf->get_server_config($this->web_serv, 'server'); + $ip4_bbdd = $global_web_config; + // add database $paramsBD = array( 'server_id' => $this->bbdd_serv, //$camDnsRR['server_id'], - 'sysgroup_id' => $this->sys_grupo_id, //$fields['client_group_id'], + 'sysgroup_id' => $this->cli_grupo_id, //$this->sys_grupo_id, 'parent_domain_id' => $sitio_id['domain_id'], 'type' => 'mysql', 'database_quota' => '-1', @@ -399,27 +343,28 @@ class page_action extends tform_actions { 'database_name_prefix' => $this->valor_prefix, 'database_user_id' => $db_user_id, 'database_charset' => 'utf8', - 'remote_access' => 'n', - 'remote_ips' => '-1', + 'remote_access' => 'y', + 'remote_ips' => $ip4_bbdd['ip_address'], //'-1', 'active' => 'y' ); - //print "
 BBDD "; print_r($paramsBD); print "
\n"; $this->nombre_db_txt = $paramsBD['database_name']; - - $db_id = $remoto->sites_database_add($this->cli_id,/*$fields['client_group_id'],*/ $paramsBD); + + $db_id = $remoto->sites_database_add($this->cli_id, /*$this->cli_grupo_id,*/ $paramsBD); $this->urlBBDD($db_id, $this->bbdd_serv); + //echo('Id de la BBDD ' . $db_id); // 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'); + $app->uses('remoting_lib'); $app->remoting_lib->loadFormDef('../sites/form/web_vhost_domain.tform.php'); + $site_data = $app->remoting_lib->getDataRecord($sitio_id); - + $this->nombre_user_ftp = $this->generaNombreFTP(); // add ftp user $ftp_params = array( - 'server_id' => $this->web_serv, //$camDnsRR['server_id'], + 'server_id' => $this->web_serv, 'parent_domain_id' => $sitio_id['domain_id'], 'username' => $this->valor_prefix_ftp . $this->nombre_user_ftp, 'username_prefix' => $this->valor_prefix_ftp, @@ -440,8 +385,11 @@ class page_action extends tform_actions { $this->pass_ftp_txt = $ftp_params['password']; //print "
 FTP "; print_r($ftp_params); print "
\n"; //print "
"; print_r($site_data); print "
\n"; - //echo('El usuario es ' . $fields['client_group_id']); - $remoto->insert_query('../sites/form/ftp_user.tform.php', $fields['client_group_id'], $ftp_params); + //echo('El grupo del usuario es ' . $this->cli_grupo_id); + $tform_def_file = "../sites/form/ftp_user.tform.php"; + $app->tform->loadFormDef($tform_def_file); + + $remoto->insert_query('../sites/form/ftp_user.tform.php', $this->cli_id,/*$fields['client_group_id'],*/ $ftp_params); echo '

Altas de BBDD y FTP, ¡Correctas!

@@ -462,6 +410,8 @@ class page_action extends tform_actions {
Nuevo dominio: '. $fields['domain'].'

'; $eldom = $fields['domain']; + //Ahora en dirección ftp para el pdf ponemos el nombre del domino. + $this->ip4_pdf = $eldom; echo '
'; echo ''; echo ''; @@ -494,9 +444,6 @@ class page_action extends tform_actions { $web_config = $app->getconf->get_server_config($servidor_id, 'web'); //print "
"; print_r($global_config); print "
\n"; //print "
"; print_r($web_config); print "
\n"; - /* - * We only redirect to the login-form, so there is no need, to check any rights - */ if($global_config['phpmyadmin_url'] != '') { $phpmyadmin_url = $global_config['phpmyadmin_url']; @@ -504,16 +451,7 @@ class page_action extends tform_actions { //header('Location: '.$phpmyadmin_url); $this->url_db = $phpmyadmin_url; //print('la url ' . $phpmyadmin_url); - } /*else { - isset($_SERVER['HTTPS'])? $http = 'https' : $http = 'http'; - if($web_config['server_type'] == 'nginx') { - //header('Location: http://' . $serverData['server_name'] . ':8081/phpmyadmin'); - print('la url http://' . $serverData['server_name'] . ':8081/phpmyadmin'); - } else { - //header('Location: ' . $http . '://' . $serverData['server_name'] . '/phpmyadmin'); - print('la url http://' . $serverData['server_name'] . ':8081/phpmyadmin'); - } - }*/ + } } //Expresiones regulares para comprobar si es subdominio @@ -542,9 +480,9 @@ class page_action extends tform_actions { $this->encontrado = preg_match($patronSubDominos, $subdom, $coincidencias); //print "
"; print_r($coincidencias); print "
\n"; - $this->subdominio = $coincidencias[0]; + $this->subdominio = $coincidencias[1]; $this->dominio = $coincidencias[2]; - + $this->es_subdominio = true; } @@ -557,31 +495,36 @@ class page_action extends tform_actions { public $sys_usuario_id; public $sys_grupo_id; + //Control del usuario logeado y captura de sus variables de systema. function controlUserGrupoId(){ global $app, $conf; $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true); - //Captura de los distintos ids del cliente y usuario de sistema. - //combinando un query a las dos tablas sys_group y sys_user que comparten el client_id. - if($fields['client_group_id']==0) { - //En la tabla sys_user el userid 1 es admin. No esta en sys_group. - $this->cli_id = 0; - //En la tabla dns_soa y dns_rr se guarda el valor 0 en sys_groupid cuando es admin. - $this->cli_grupo_id = 1; - $this->sys_usuario_id = $this->cli_id; - $this->sys_grupo_id = $this->cli_grupo_id; - }else{ - $client = $app->db->queryOneRecord( - 'SELECT sys_user.sys_userid, sys_user.sys_groupid, sys_user.default_group, sys_user.client_id - FROM sys_group, sys_user - WHERE sys_group.client_id = sys_user.client_id and sys_group.groupid = ?', $fields['client_group_id']); - - $this->cli_id = $client['client_id']; - $this->cli_grupo_id = $client['default_group']; - $this->sys_usuario_id = $client['sys_userid']; - $this->sys_grupo_id = $client['sys_groupid']; - } + + //Captura de los distintos ids del cliente y usuario de sistema. + //combinando un query a las dos tablas sys_group y sys_user que comparten el client_id. + //print "
Seleccionado: "; print_r($fields['client_group_id']); print "
\n"; + if($fields['client_group_id']==0) { + //En la tabla sys_user el client_id 0 es admin. En sys_group este valor es 0 + $this->cli_id = 0; + $this->cli_grupo_id = 1; + $this->sys_usuario_id = 1;//$this->cli_id; + $this->sys_grupo_id = 0; //$this->cli_grupo_id;//0 + //echo('Quien es ' . $_SESSION["s"]["user"]["typ"]); + }else{ + //echo('Quien es else ' . $_SESSION["s"]["user"]["typ"]); + $client = $app->db->queryOneRecord( + 'SELECT sys_user.userid, sys_user.sys_userid, sys_user.sys_groupid, sys_user.default_group, sys_user.client_id + FROM sys_group, sys_user + WHERE sys_group.client_id = sys_user.client_id and sys_group.groupid = ?', $fields['client_group_id']); + + $this->cli_id = $client['client_id']; + $this->cli_grupo_id = $client['default_group']; + $this->sys_usuario_id = $client['userid'];//$client['sys_userid']; + $this->sys_grupo_id = $this->cli_grupo_id;//$client['sys_groupid']; + //echo('Es cliente cli_id ' . $this->cli_id . ' cli_grupo_id ' . $this->cli_grupo_id . ' sys_usuario ' . $this->sys_usuario_id . ' sys_grupo ' . $this->sys_grupo_id); + } } //Crear subdominio @@ -635,20 +578,18 @@ class page_action extends tform_actions { $camDnsRR = $app->db->queryOneRecord('SELECT server_id, zone FROM dns_rr WHERE name LIKE "'.$this->dominio.'."'); //Para los registros tipo A la ip tiene que ser tipo IPv4 - $camServIP = $app->db->queryOneRecord( +/* $camServIP = $app->db->queryOneRecord( "SELECT ip_address FROM server_ip WHERE server_id = ".$camDnsRR['server_id']." AND ip_type='IPv4'"); - +*/ //print_r($camDominio); //print_r($camDnsRR); - + $this->ip4_ultima = $this->ip4_servidor_dns['ip_address']; //Si el dominio NO existe mostramos mensaje de error y salimos de la ejecución if(!$camDominio['origin']){ $this->subdom_error = true; $app->tform->errorMessage = $app->tform->wordbook['error_no_existe_dominio_padre']; $this->onError(); - //return; - //print 'No existe el dominio'; return $this->subdom_error; } else { @@ -658,7 +599,7 @@ class page_action extends tform_actions { 'zone' => $camDnsRR['zone'], 'name' => $this->subdominio, 'type' => 'a', - 'data' => $camServIP['ip_address'], + 'data' => $this->ip4_ultima, //$camServIP['ip_address'], //'aux' => '0', 'ttl' => '3600', 'active' => 'y', @@ -744,20 +685,28 @@ class page_action extends tform_actions { ); //print "
 Parametros:"; print_r($paramsite); print "
\n"; - /*print '
 cliente id ' . $fields['client_id'];
 		print "
";print_r($fields);print "
\n" . $fields['client_id'];*/ - //print '
DNS IPV6 ' . $dns_ip_servidor_ipv6['ip_address'];
 
-		//$tform_def_file2 = "../sites/form/web_vhost_domain.tform.php";
-		//$app->tform->loadFormDef($tform_def_file2);
+		
+		//IMPORTANTE. PARA QUE EL PLUGING FUNCIONE HAY QUE CARGAR ANTES EL FORMULARIO
+		//DE LO QUE SE QUIERE CREAR EN ESTE CASO SITIO WEB
+		$tform_def_file = "../sites/form/web_vhost_domain.tform.php";
+		$app->tform->loadFormDef($tform_def_file);
 		//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->cli_id, $paramsite, 'sites:web_vhost_domain:on_after_insert');
+		$site_id = $remoto->insert_query('../sites/form/web_vhost_domain.tform.php', 
+											$this->cli_id, /*$cliente_id_seleccionado,*/
+											$paramsite, 'sites:web_vhost_domain:on_after_insert');
+
+		//IMPORTANTE. HAY QUE CARGAR EL FORMULARIO DE WEBDNS PARA QUE ENCUENTRE EL TAB.
+		$tform_def_file = "form/new_service_webdns.tform.php";
+		$app->tform->loadFormDef($tform_def_file);
 	}
 
+
 	public $ip4_servidor_dns;
 	public $ip6_servidor_dns;
 	public $ip4_servidor_web;
@@ -771,6 +720,7 @@ class page_action extends tform_actions {
 	public $bbdd_serv;
 	public $ftp_serv;
 
+
 	function tieneServidorIPs(){
 	    global $app, $conf;
 	
@@ -780,17 +730,32 @@ class page_action extends tform_actions {
 		$global_config_sitio = $app->getconf->get_global_config('sites');
 		$global_config_dns = $app->getconf->get_global_config('dns');
 
+		if(!$global_config_dns['default_dnsserver']) {
+			$app->tform->errorMessage = $app->tform->wordbook['error_no_servidor_default']. 'DNS.';
+			$this->onError();
+			return true;
+		} else if(!$global_config_sitio['default_webserver']) {
+			$app->tform->errorMessage = $app->tform->wordbook['error_no_servidor_default']. 'WEB.';
+			$this->onError();
+			return true;
+		} else if(!$global_config_sitio['default_dbserver']) {
+			$app->tform->errorMessage = $app->tform->wordbook['error_no_servidor_default']. 'DB.';
+			$this->onError();
+			return true;
+		}
+		
 		//print "
WEB SERVER por defecto ";print_r($global_config_sitio);print "
\n"; //print "
DNS SERVER por defecto ";print_r($global_config_dns);print "
\n"; //El cliente 1 es admin. //Recupero los servidores asignados por defecto y se los asigno a admin o al usuario //que no tenga asignado ninguno. - if($this->cli_id == 1) { + if($this->cli_id == 0) { $this->dns_serv = $global_config_dns['default_dnsserver'];//1; $this->web_serv = $global_config_sitio['default_webserver'];//1; $this->bbdd_serv = $global_config_sitio['default_dbserver'];//1; $this->ftp_serv = $global_config_sitio['default_webserver'];//1; + //print "
tieneServidorIPs el cli_id "; print_r($this->cli_id . ' el servidor ' . $this->dns_serv); print "
\n"; }else{ $servidores = $app->db->queryOneRecord( "SELECT client_id, dns_servers, web_servers, db_servers FROM client @@ -802,20 +767,20 @@ class page_action extends tform_actions { //para el ftp el servidor es el mismo que para el sitio web. $this->ftp_serv = $servidores['web_servers']; - //Si el cliente no tiene asignado un servidor se añade por defecto al 1 + //Si el cliente no tiene asignado un servidor se añade por defecto al que hay en la configuración por defecto if(!$this->dns_serv){ $this->dns_serv = $global_config_dns['default_dnsserver'];//1; } - //Si el cliente no tiene asignado un servidor se añade por defecto al 1 + //Si el cliente no tiene asignado un servidor se añade por defecto al que hay en la configuración por defecto if(!$this->web_serv){ $this->web_serv = $global_config_sitio['default_webserver'];//1; } - //Si el cliente no tiene asignado un servidor se añade por defecto al 1 + //Si el cliente no tiene asignado un servidor se añade por defecto al que hay en la configuración por defecto if(!$this->bbdd_serv){ $this->bbdd_serv = $global_config_sitio['default_dbserver'];//1; } - //Si el cliente no tiene asignado un servidor se añade por defecto al 1 + //Si el cliente no tiene asignado un servidor se añade por defecto al que hay en la configuración por defecto if(!$this->ftp_serv){ $this->ftp_serv = $global_config_sitio['default_webserver'];//1; } @@ -825,23 +790,22 @@ class page_action extends tform_actions { print "
DB SERVER ";print_r($this->bbdd_serv);print "
\n"; print "
FTP SERVER ";print_r($this->ftp_serv);print "
\n";*/ - - //Captura de las ips del servidor dns de la variable global. - $global_dns_config = $app->getconf->get_server_config($this->dns_serv, 'server'); + + //Captura de las ips del servidor dns de la variable global para ello. +/* $global_dns_config = $app->getconf->get_server_config($this->dns_serv, 'server'); + $this->ip4_servidor_dns = $global_dns_config['ip_address']; + $this->ip6_servidor_dns = $global_dns_config['v6_prefix'];*/ //El cliente 1 es admin -// if($this->cli_id == 0){ - - $this->ip4_servidor_dns = $global_dns_config['ip_address']; - $this->ip6_servidor_dns = $global_dns_config['v6_prefix']; + if($this->cli_id == 0){ //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( + $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( + 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"');*/ + 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( @@ -851,14 +815,13 @@ class page_action extends tform_actions { /* 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{*/ + WHERE client_id = "1" AND server_id = "'.$this->dns_serv.'" AND ip_type="IPv6"');*/ + //} + }else{ // $this->ip4_servidor_dns = $global_dns_config['ip_address']; -// $this->ip6_servidor_dns = $global_dns_config['v6_prefix']; //Comprobamos si el cliente tiene servidor asignado, si no lo tiene asignamos el que admin a seleccionado //para este servidor. - /*$this->ip4_servidor_dns = $app->db->queryOneRecord( + $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"'); @@ -866,14 +829,15 @@ class page_action extends tform_actions { 'SELECT ip_type, ip_address FROM server_ip WHERE client_id = "'.$this->cli_id.'" AND server_id = "'.$this->dns_serv.'"AND ip_type="IPv6"'); - */ + + //echo(' la ip6 ' . $this->ip6_ultima); //si no tiene asignado le damos el de admin. - // if(!$this->ip4_servidor_dns){ - // $this->ip4_servidor_dns = $global_dns_config['ip_address']; +/* if(!$this->ip4_servidor_dns){ +// $this->ip4_servidor_dns = $global_dns_config['ip_address']; //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( + $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"'); @@ -881,27 +845,29 @@ class page_action extends tform_actions { $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->ip6_servidor_dns){ + }*/ + if(!$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){ + /*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"'); - } + }*/ } - }*/ + $this->ip6_ultima = $this->ip6_servidor_dns['ip_address']; + } //Captura de las ips del servidor web - if($this->cli_id == 1){ + if($this->cli_id == 0){ //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( @@ -911,7 +877,7 @@ class page_action extends tform_actions { '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){ + /*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"'); @@ -920,7 +886,7 @@ class page_action extends tform_actions { $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 @@ -937,28 +903,31 @@ class page_action extends tform_actions { 'SELECT ip_type, ip_address FROM server_ip WHERE client_id = "0" AND server_id = "'.$this->web_serv.'" AND ip_type="IPv4"'); - if(!$this->ip4_servidor_web){ + /*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"'); - } + }*/ } + //Cargamos variable para el pdf + $this->ip4_pdf = $this->ip4_servidor_web['ip_address']; + if(!$this->ip6_servidor_web){ $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){ + /*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"'); - } + }*/ } } //Captura de las ips del servidor bbdd - if($this->cli_id == 1){ + if($this->cli_id == 0){ //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. + //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"'); @@ -966,7 +935,7 @@ class page_action extends tform_actions { '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){ + /*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"'); @@ -975,7 +944,7 @@ class page_action extends tform_actions { $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 @@ -985,7 +954,7 @@ class page_action extends tform_actions { 'SELECT ip_type, ip_address FROM server_ip WHERE client_id = "'.$this->cli_id.'" AND server_id = "'.$this->bbdd_serv.'"AND ip_type="IPv6"'); - + //echo(' (1) la ip4 bbdd ' . print_r($this->ip4_servidor_bbdd)); //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 @@ -994,31 +963,31 @@ class page_action extends tform_actions { $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"'); - - if(!$this->ip4_servidor_bbdd){ + //echo(' (2) la ip4 bbdd ' . print_r($this->ip4_servidor_bbdd)); + /*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 = "0" AND server_id = "'.$this->bbdd_serv.'" AND ip_type="IPv6"'); - if(!$this->ip6_servidor_bbdd){ + /*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"'); - } + }*/ } } //para el servidor ftp no se hacen comprobaciones //ya que las ips son las mismas que para el servidor web. - //print_r($this->ip4_servidor_web['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_web['ip_address'];//$this->ip4_servidor_dns; + //$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"; @@ -1026,10 +995,14 @@ class page_action extends tform_actions { 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 . '
');*/ - //echo(' ip4pdf es ' . $this->ip4_pdf); -/* if(!$this->ip4_servidor_dns['ip_address']){ + if(!$this->ip4_servidor_dns['ip_address']){ + //si no tiene servidor dns en la lista de ips se toma el servidor por defecto web y se usan sus ips + $global_web_config = $app->getconf->get_server_config($this->web_serv, 'server'); + $this->ip4_servidor_dns = $global_web_config; + //$this->ip6_servidor_dns = $global_web_config; - $servicio_dns = $app->db->queryOneRecord( + + /*$servicio_dns = $app->db->queryOneRecord( 'SELECT server_id, dns_server, server_name FROM server WHERE server_id = "'.$this->dns_serv.'"'); @@ -1037,11 +1010,21 @@ class page_action extends tform_actions { $app->tform->errorMessage = $app->tform->wordbook['error_no_ip']. 'la IP4 para el servidor ' . $nom_serv_dns; $this->onError(); - return true; + return true;*/ } + //Si no tiene ip6 asignada tomamos la del servidor web if(!$this->ip6_servidor_dns['ip_address']){ - - $servicio_dns = $app->db->queryOneRecord( + $this->ip6_servidor_dns = $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"'); + //si no tiene servidor dns en la lista de ips se toma el servidor por defecto web y se usan sus ips +// $global_web_config = $app->getconf->get_server_config($this->web_serv, 'server'); + //$this->ip4_servidor_dns = $global_web_config; +// $this->ip6_servidor_dns = $global_web_config['v6_prefix']; +// $this->ip6_ultima = $this->ip6_servidor_dns; + //echo(' la ip6 ' . $this->ip6_servidor_dns); +/* $servicio_dns = $app->db->queryOneRecord( 'SELECT server_id, dns_server, server_name FROM server WHERE server_id = "'.$this->dns_serv.'"'); @@ -1049,19 +1032,28 @@ class page_action extends tform_actions { $app->tform->errorMessage = $app->tform->wordbook['error_no_ip']. 'la IP6 para el servidor '. $nom_serv_dns; $this->onError(); - return true; - }*/ + return true;*/ + } if(!$this->ip4_servidor_web['ip_address']){ - $servidor_web = $app->db->queryOneRecord( - 'SELECT server_id, web_server, server_name FROM server - WHERE server_id = "'.$this->web_serv.'"'); - - $nom_serv_web = $servidor_web['server_name']; + //Si no hay ip4 en la lista de ips, tomamos esta de la configuración principal. + $global_web_config = $app->getconf->get_server_config($this->web_serv, 'server'); + $this->ip4_servidor_web = $global_web_config; - $app->tform->errorMessage = $app->tform->wordbook['error_no_ip']. 'la IP4 para el servidor ' . $nom_serv_web; - $this->onError(); - return true; + //Cargamos variable para el pdf + $this->ip4_pdf = $this->ip4_servidor_web['ip_address']; + + if(!$this->ip4_servidor_web['ip_address']){ + $servidor_web = $app->db->queryOneRecord( + 'SELECT server_id, web_server, server_name FROM server + WHERE server_id = "'.$this->web_serv.'"'); + + $nom_serv_web = $servidor_web['server_name']; + + $app->tform->errorMessage = $app->tform->wordbook['error_no_ip']. 'la IP4 para el servidor ' . $nom_serv_web; + $this->onError(); + return true; + } } if(!$this->ip6_servidor_web['ip_address']){ @@ -1077,19 +1069,25 @@ class page_action extends tform_actions { } if(!$this->ip4_servidor_bbdd['ip_address']){ - $servicio_db = $app->db->queryOneRecord( - 'SELECT server_id, db_server, server_name FROM server - WHERE server_id = "'.$this->bbdd_serv.'"'); - - $nom_serv_db = $servicio_db['server_name']; + $global_bbdd_config = $app->getconf->get_server_config($this->bbdd_serv, 'server'); + $this->ip4_servidor_bbdd = $global_bbdd_config; + //echo(' (3) la ip4 bbdd ' . print_r($this->ip4_servidor_bbdd)); + //Como la ip4 para las bbdd es la ip4 para el sitio web, no es necesario esta comprobación +/* if(!$this->ip4_servidor_bbdd['ip_address']){ + $servicio_db = $app->db->queryOneRecord( + 'SELECT server_id, db_server, server_name FROM server + WHERE server_id = "'.$this->bbdd_serv.'"'); + + $nom_serv_db = $servicio_db['server_name']; - $app->tform->errorMessage = $app->tform->wordbook['error_no_ip']. 'la IP4 para el servidor ' . $nom_serv_db; - $this->onError(); - return true; + $app->tform->errorMessage = $app->tform->wordbook['error_no_ip']. 'la IP4 para el servidor ' . $nom_serv_db; + $this->onError(); + return true; + }*/ } - if(!$this->ip6_servidor_bbdd['ip_address']){ +/* if(!$this->ip6_servidor_bbdd['ip_address']){ - $servicio_db = $app->db->queryOneRecord( + /* $servicio_db = $app->db->queryOneRecord( 'SELECT server_id, db_server, server_name FROM server WHERE server_id = "'.$this->bbdd_serv.'"'); @@ -1098,7 +1096,7 @@ class page_action extends tform_actions { $app->tform->errorMessage = $app->tform->wordbook['error_no_ip']. 'la IP6 para el servidor ' . $nom_serv_db; $this->onError(); return true; - } + }*/ return false; } @@ -1155,51 +1153,32 @@ class page_action extends tform_actions { return true; } - /*$servidores = $app->db->queryAllRecords( - 'SELECT server_id, server_name, web_server, dns_server, file_server, db_server FROM server'); - - foreach($servidores as $servidor){ - $serv_web = $servidor['web_server']; - $serv_dns = $servidor['dns_server']; - $serv_ftp = $servidor['file_server']; - $serv_db = $servidor['db_server']; - $nombre_server = $servidor['server_name']; - //print "
Todos los servidores ";print_r($servidor);print "
\n"; - //Si alguno de los servidores no esta activo, mostramos error. - if($serv_web == 0){ - $app->tform->errorMessage = $app->tform->wordbook['error_activado_servidor'] . $nombre_server . ' el servicio WEB'; - $this->onError(); - return true; - } else if($serv_dns == 0){ - $app->tform->errorMessage = $app->tform->wordbook['error_activado_servidor'] . $nombre_server . ' el servicio DNS'; - $this->onError(); - return true; - } else if($serv_ftp == 0){ - $app->tform->errorMessage = $app->tform->wordbook['error_activado_servidor'] . $nombre_server . ' el servicio FTP'; - $this->onError(); - return true; - } else if($serv_db == 0){ - $app->tform->errorMessage = $app->tform->wordbook['error_activado_servidor'] . $nombre_server . ' el servicio DB'; - $this->onError(); - return true; - }*/ - - //} return false; } + + //Comprobación de que tenemos instalada nuestra plantilla + function plantillaWebDNS(){ + global $app; + + if(!$app->db->queryOneRecord("SELECT name FROM dns_template WHERE name = 'webdns'")) { + $app->tform->errorMessage = $app->tform->wordbook['error_plantilla_webdns']; + $this->onError(); + return true; + } + } //Comprueba que no exista el dominio y que no tenga sitio web, puede tener sitio web y no tener dns. function existeDominio($campos){ global $app, $conf; - if($app->db->queryOneRecord('SELECT * FROM dns_soa WHERE origin LIKE "'.$campos['domain'].'%"')) { + if($app->db->queryOneRecord('SELECT * FROM dns_soa WHERE origin LIKE "'.$campos['domain'].'."')) { $app->tform->errorMessage = $app->tform->wordbook['domain_error_unique']; } if($app->db->queryOneRecord('SELECT domain_id, domain FROM web_domain WHERE domain = "'.$campos['domain'].'"')) { $app->tform->errorMessage = $app->tform->wordbook['error_sitio_web_existe']; } - + //IMPORTANTE. AQUI CONTROLAMOS LOS ERRORES QUE SE VALIDAN EN EL FORMULARIO, EN ESTE CASO EL CAMPO DEL DOMINIO. if($app->tform->errorMessage) { $this->onError(); @@ -1212,6 +1191,7 @@ class page_action extends tform_actions { //Creación del las dns y sitio web para un dominio. function crearDnsSitioWeb($remoto){ global $app, $conf; + $remote = new remote_actions; //Carga de los campos del formulario. $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true); @@ -1224,40 +1204,41 @@ class page_action extends tform_actions { "SELECT * FROM dns_template WHERE visible = 'Y' AND name = 'webdns'"); /*'open6hosting'");*/ -/*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";*/ + /*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->ip4_servidor_dns){ + $this->ip4_ultima = $this->ip4_servidor_dns['ip_address']; + //} + //echo(' ips ' . $this->ip4_ultima . ' ip4dns ' . $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->dns_serv && $this->ip6_servidor_dns){ + $this->ip6_ultima = $this->ip6_servidor_dns['ip_address']; + //} + //echo(' ip4 ' . $this->ip4_ultima['ip_address'] . ' ip6 ' . $this->ip6_ultima); + //if($this->web_serv && $this->ip4_servidor_web){ + //$this->ip4_ultima = $this->ip4_servidor_dns;//$this->ip4_servidor_web; + //} - if($this->web_serv && $this->ip6_servidor_web){ - $this->ip6_ultima = $this->ip6_servidor_web; - } + //if($this->web_serv && $this->ip6_servidor_web){ + //$this->ip6_ultima = $this->ip4_servidor_dns;//$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}', $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); + $tpl_content = str_replace('{IP}', $this->ip4_ultima, $tpl_content); + $tpl_content = str_replace('{IPV6}', $this->ip6_ultima, $tpl_content); - $enable_dnssec = 'N';//(($_POST['dns_dnssec'] == 'Y') ? 'Y' : 'N'); + $enable_dnssec = 'N'; // Parse the template $tpl_rows = explode("\n", $tpl_content); @@ -1300,7 +1281,7 @@ print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/ } // end foreach // Insert the soa record - $sys_userid = $this->cli_id;//$cliente_id_seleccionado;//$fields['client_group_id']; + $sys_userid = $this->cli_id; $origin = $vars['origin']; $ns = $vars['ns']; $mbox = str_replace('@', '.', $vars['mbox']); @@ -1320,7 +1301,7 @@ print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/ "sys_perm_user" => 'riud', "sys_perm_group" => 'riud', "sys_perm_other" => '', - "server_id" => $this->dns_serv, //$dns_servidor,//$server_id,//$dns_servidor, //$server_id,//$dns_servidor['default_dnsserver'], + "server_id" => $this->dns_serv, "origin" => $origin, "ns" => $ns, "mbox" => $mbox, @@ -1337,7 +1318,7 @@ print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/ "dnssec_wanted" => $enable_dnssec ); $dns_soa_id = $app->db->datalogInsert('dns_soa', $insert_data, 'id'); - + // Insert the dns_rr records if(is_array($dns_rr) && $dns_soa_id > 0) { foreach($dns_rr as $rr) { @@ -1370,11 +1351,11 @@ print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/ 'type' => 'vhost', 'domain' => $fields['domain'], 'server_id' => $this->web_serv,// $web_servidor, //$server_id,//$dns_servidor['default_webserver'], - //IMPORTANTE. Aquí no se ponen los campos sys_userid ni sys_groupid, el evento on_after_insert + //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' => $this->ip6_servidor_web['ip_address'], //$this->ip6_ultima['ip_address'], //$dns_ip_servidor_ipv6['ip_address'], + 'ipv6_address' => $this->ip6_servidor_web['ip_address'], 'traffic_quota' => '-1', 'hd_quota' => '0', 'cgi' => 'y', @@ -1424,12 +1405,20 @@ print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/ //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', $this->cli_id, /*$cliente_id_seleccionado,*/ $paramsite, 'sites:web_vhost_domain:on_after_insert'); + + //IMPORTANTE. ESTE ES EL ÚNICO PLUGING QUE FUNCIONA. + $site_id = $remoto->insert_query('../sites/form/web_vhost_domain.tform.php', + $this->cli_id, /*$cliente_id_seleccionado,*/ + $paramsite, 'sites:web_vhost_domain:on_after_insert'); //print 'Sitio id '. $site_id; } function onSubmit() { global $app, $conf; + + if($this->plantillaWebDNS()){ + return; + } //Carga de campos del formulario. $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true); @@ -1455,13 +1444,6 @@ print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/ 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 . "
");*/ - //print "Subdomino: " . $this->subdomino . "

\n Dominio: " . $this->domino; if($this->comprobarSubDominios($fields['domain'])){ $this->crearSubDominio($remote, $fields['domain']); @@ -1473,16 +1455,17 @@ print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/ } else { if(!$this->dominio_error){ $this->crearDnsSitioWeb($remote); - //$variablePHP = ""; //Si todo va bien, el resultado de la web y dns echo '

Altas Web y DNS del dominio '.$fields['domain'].', ¡Creadas correctamente!


'; - //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); + //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 el antes de ejecutarla. + $app->tform->loadFormDef('form/new_service_webdns.tform.php'); + + $this->crearBaseDatosFtp($remote); + }else{ $this->onError(); return; @@ -1535,63 +1518,13 @@ $page = new page_action; $page->onLoad(); -//IMPORTENTE, es necesario estas líneas para que el botón del pdf funcione. Activa el javascript +//IMPORTENTE, es necesario estas lí­neas para que el botón del pdf funcione. Activa el javascript //echo ''; - ?> - + \ No newline at end of file +