diff --git a/form/new_service_webdns.tform.php b/form/new_service_webdns.tform.php index 575a32c..dcc8b32 100755 --- a/form/new_service_webdns.tform.php +++ b/form/new_service_webdns.tform.php @@ -67,9 +67,9 @@ $form["title"] = "Nuevo servicio Web"; $form["description"] = ""; $form["name"] = "new_service_webdns"; $form["action"] = "new_service_webdns.php"; -$form["db_table"] = "server"; -$form["db_table_idx"] = "server_id"; -$form["db_history"] = "no"; +//$form["db_table"] = "web_database_user"; +//$form["db_table_idx"] = "database_user_id"; +$form["db_history"] = "yes"; $form["tab_default"] = "webdns"; $form["auth"] = 'yes'; // yes / no @@ -119,5 +119,30 @@ $form["tabs"]['webdns'] = array( ), 'value' => '' ), + /*'database_user' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'database_user_error_empty'), + 1 => array ( 'type' => 'UNIQUE', + 'errmsg'=> 'database_user_error_unique'), + 2 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9_]{2,64}$/', + 'errmsg'=> 'database_user_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255', + 'searchable' => 1 + ), + 'database_user_prefix' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '25' + ),*/ ) ); \ No newline at end of file diff --git a/new_service_webdns.php b/new_service_webdns.php index d586db7..071717b 100755 --- a/new_service_webdns.php +++ b/new_service_webdns.php @@ -20,19 +20,28 @@ $tform_def_file = "form/new_service_webdns.tform.php"; $app->auth->check_module_permissions('webdns'); //Loading classes a usar. -$app->uses('tpl,tform,tform_actions,remoting,tools_sites,remoting_lib,remoting_dns'); +$app->uses('tpl,tform,tform_actions,remoting,tools_sites,remoting_lib,remoting_dns,validate_dns'); $app->load('tform_actions'); class page_action extends tform_actions { + public $estaLogeado; function onShowNew() { - //global $app; - + global $app; + //if($_SESSION['s']['user']['typ'] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) unset($this->dataRecord["client_group_id"]); + //unset($_SESSION['s_old']); + //echo('Data record '. $this->dataRecord["username_prefix"] . print_r($this->dataRecord)); + //$sesion = $_SESSION; + /*$sesionDe = $_SESSION['s']['user']['typ']; + $grupo = $_SESSION["s"]["user"]["default_group"]; + print_r('La session de ' . $sesionDe); + print(', su grupo es ' . $grupo);*/ + //print_r($sesion); + $this->estaLogeado = $_SESSION['s']['user']['typ']; // we will check only users, not admins - if($_SESSION['s']['user']['typ'] == 'user') { - + if($this->estaLogeado == 'user') { $client_group_id = $_SESSION["s"]["user"]["default_group"]; $limitado = new limites($client_group_id); $limitado->limitesLoad(); @@ -44,23 +53,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'); + //$this->valor_prefix = $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $this->dataRecord); + //$this->valor_prefix_ftp = $ftpuser_prefix = $app->tools_sites->replacePrefix($global_config['ftpuser_prefix'], $this->dataRecord); +//echo('PRe antes ' . $ftpuser_prefix . ' DataRecord ' . print_r($this->dataRecord)); +//echo('PRe antes2 ' . print_r($global_config)); + + + 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); - +//echo('PRe antes2 ' . print_r($global_config)); // 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"; + /* $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']); $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ?", $client['client_id']); $client_select = ''; @@ -71,7 +95,7 @@ class page_action extends tform_actions { $client_select .= "\r\n"; } } - $app->tpl->setVar("client_group_id", $client_select); + $app->tpl->setVar("client_group_id", $client_select);*/ } elseif($_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"; @@ -87,16 +111,23 @@ class page_action extends tform_actions { } $app->tpl->setVar("client_group_id", $client_select); } - +// echo('Prefix Global ' . $this->valor_prefix); if ($this->dataRecord['database_user'] != ""){ /* REMOVE the restriction */ + //echo(' (1)Remove las restrinciones'); $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); + //echo(' (2)user DB vacío '); } else { + //echo(' (3)user DB con algo ' . $this->dataRecord['database_user_prefix']); $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']); + //echo(' Datos prefix ' . $datos_prefix); + $fields['database_user_prefix'] = $datos_prefix; } if ($this->dataRecord['username'] != ""){ @@ -109,10 +140,11 @@ 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(); } - + public $valor_prefix; public $valor_prefix_ftp; @@ -124,15 +156,18 @@ class page_action extends tform_actions { $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); - + $this->dataRecord['username_prefix'] = $ftpuser_prefix; $this->dataRecord['database_user_prefix'] = $dbuser_prefix; - $valor2 = $this->dataRecord['database_user_prefix'] = $dbuser_prefix; - + //$valor2 = $this->dataRecord['database_user_prefix'] = $dbuser_prefix; +//print('Campos Record ' . print($this->dataRecord['username_prefix']) . ' username ' . $this->dataRecord['database_user_prefix'] ); $this->valor_prefix = $this->dataRecord['database_user_prefix'] = $dbuser_prefix; $this->valor_prefix_ftp = $this->dataRecord['username_prefix'] = $ftpuser_prefix; - if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) +//echo('(1)Prefix ' . $this->valor_prefix . '(2)Prefix ftp ' . $this->valor_prefix_ftp ); + + +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"]).'
'; @@ -149,6 +184,22 @@ class page_action extends tform_actions { } $this->dataRecord['server_id'] = 0; // we need this on all servers + + //echo('Usuarios ' .$this->dataRecord['database_user'] . ' Prefix ' . $this->dataRecord['database_user_prefix'] . ' Mas ' . $dbuser_prefix); + 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'])); + } + + if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $this->valor_prefix = $fields['database_user_prefix']; + } } @@ -171,35 +222,7 @@ 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); @@ -261,7 +284,7 @@ class page_action extends tform_actions { global $app, $conf, $interfaceConf; //Get the database name and database user prefix - $app->uses('getconf,tools_sites'); + /*$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); @@ -282,11 +305,12 @@ class page_action extends tform_actions { /* restrict the names */ /* crop user names if they are too long -> mysql: user: 16 chars / db: 64 chars */ - if ($app->tform->errorMessage == ''){ +/* 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); @@ -344,6 +368,144 @@ class page_action extends tform_actions { return true; }*/ + function crearBaseDatosFtpClientes($remoto){ + global $app, $conf; + + $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true); + + $app->uses('ini_parser,getconf'); + $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_r($fields); + //echo(' Campo en formulario ' . $fields['database_user_prefix']); + //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"; + + //echo(' El nuevo prefix ' . $this->valor_prefix_ftp); + $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);*/ + + echo('Mierda Clientes' . $this->valor_prefix . ' Mas mierda ' . $fields['database_user_prefix'] . ' Y mas ' . $this->dataRecord['database_user_prefix']); + //añado database user con su prefix + $db_user_params = array( + 'server_id' => $this->bbdd_serv, + 'sysgroup_id' => $this->sys_grupo_id, + 'sys_userid' => $this->sys_usuario_id, + 'sys_perm_other' => '-', + 'database_user' => $generated_usernameBBDD, + 'database_user_prefix' => $fields['database_user_prefix'], + 'database_password' => $clavePass + ); + + $this->usuario_db_txt = $db_user_params['database_user']; + $this->pass_db_txt = $db_user_params['database_password']; + + print "
 USUARIO BBDD "; print_r($db_user_params); print "
\n"; + //print "
". $this->cli_id; + //print "
". $this->usuario_db_txt; + //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'); + + // add database + $paramsBD = array( + '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', + 'database_name' => $generated_usernameBBDD, + 'database_name_prefix' => $this->valor_prefix, + 'database_user_id' => $db_user_id, + 'database_charset' => 'utf8', + 'remote_access' => 'n', + 'remote_ips' => '-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); + + $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->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'], + 'parent_domain_id' => $sitio_id['domain_id'], + 'username' => $this->valor_prefix_ftp . $this->nombre_user_ftp, + 'username_prefix' => $this->valor_prefix_ftp, + 'password' => $clavePass, + 'quota_size' => '-1', + 'dir' => $site_data['0']['document_root'], + 'uid' => $site_data['0']['system_user'], + 'gid' => $site_data['0']['system_group'], + 'sys_groupid' => $site_data['0']['sys_groupid'], + 'quota_files' => '-1', + 'ul_ratio' => '-1', + 'dl_ratio' => '-1', + 'ul_bandwidth' => '-1', + 'dl_bandwidth' => '-1', + 'active' => 'y', + ); + $this->usuario_ftp_txt = $ftp_params['username']; + $this->pass_ftp_txt = $ftp_params['password']; + //print "
 FTP "; print_r($ftp_params); print "
\n"; + //print "
"; print_r($site_data); print "
\n"; + echo('El grupo del usuario es ' . $this->cli_grupo_id); +// $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!

+ Usuario BBDD: '. $this->usuario_db_txt .'
Contraseña: ' . $this->pass_db_txt . ' +
Nombre BBDD: ' . $this->nombre_db_txt . '
+
Usuario FTP: '. $this->usuario_ftp_txt .'
Contraseña: ' . $this->pass_ftp_txt . '

+

'; + + //$hoy = date("d-m-Y H:i:s"); + + $html_resultado = '

BBDD
+ Usuario: '. $this->usuario_db_txt .'
+ Nombre Base de Datos: ' . $this->nombre_db_txt .'
+ Clave: ' . $this->pass_db_txt . '

+ FTP
+ Usuario: '. $this->usuario_ftp_txt .'
+ Clave: ' . $this->pass_ftp_txt . '

+
Nuevo dominio: '. $fields['domain'].'

'; + + $eldom = $fields['domain']; + echo '
'; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo '
'; + + echo '
'; + + } function crearBaseDatosFtp($remoto){ global $app, $conf; @@ -357,17 +519,20 @@ class page_action extends tform_actions { //print "
"; print_r($generated_usernameBBDD); print "
\n"; $sitio_id = $app->db->queryOneRecord( 'SELECT domain_id, domain FROM web_domain WHERE domain = "'.$fields['domain'].'"'); - + print_r($fields); + //echo(' Campo en formulario ' . $fields['database_user_prefix']); //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"; + echo(' El nuevo prefix ' . $this->valor_prefix_ftp); $clavePass = $this->generaPass(); //*Recupero todos los prefix necesarios - $app->uses('getconf,tools_sites'); + /*$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); - + $ftpuser_prefix = $app->tools_sites->replacePrefix($global_config['ftpuser_prefix'], $this->dataRecord);*/ + + echo(' Mierda de siempre ' . $this->valor_prefix . ' Mas mierda ' . $fields['database_user_prefix'] . ' Y mas ' . $this->dataRecord['database_user_prefix']); //añado database user con su prefix $db_user_params = array( 'server_id' => $this->bbdd_serv, @@ -382,13 +547,13 @@ class page_action extends tform_actions { $this->usuario_db_txt = $db_user_params['database_user']; $this->pass_db_txt = $db_user_params['database_password']; - //print "
 USUARIO BBDD "; print_r($db_user_params); print "
\n"; + print "
 USUARIO BBDD "; print_r($db_user_params); print "
\n"; //print "
". $this->cli_id; //print "
". $this->usuario_db_txt; //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'); +// $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'); // add database $paramsBD = array( @@ -405,11 +570,11 @@ class page_action extends tform_actions { 'remote_ips' => '-1', 'active' => 'y' ); - //print "
 BBDD "; print_r($paramsBD); print "
\n"; + 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,/*$fields['client_group_id'],*/ $paramsBD); $this->urlBBDD($db_id, $this->bbdd_serv); //echo('Id de la BBDD ' . $db_id); @@ -442,8 +607,8 @@ 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); +// $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!

@@ -521,12 +686,21 @@ class page_action extends tform_actions { //Expresiones regulares para comprobar si es subdominio function comprobarSubDominios($subdom) { global $app, $conf; + //echo(' Subdominio en funcion ' . $subdom); + //Se comprueba que el campo para el dominio no este vacío. +/* if($subdom == ''){ + $this->es_subdominio = false; + $this->dominio_error = true; + $app->tform->errorMessage = "El campo para el dominio, esta vacío."; + //$app->tform->wordbook['error_dominio_mas_puntos']; + }*/ $patronSubDominos = "/(.*?)\.(.*)$/"; $patronWWW = "/^w{3}/"; //Se comprueba que no tenga 3 w "www" al principio del nombre del dominio o subdomino $encontradoWWW = preg_match($patronWWW, $subdom, $coincidencias); + //echo('Encontrado ' . $encontrado . ' Dominio ' . $subdom); if($encontradoWWW){ $app->tform->errorMessage = $app->tform->wordbook['error_dominio_www']; return; @@ -564,15 +738,25 @@ class page_action extends tform_actions { $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true); + //* 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'])) { + + $this->cli_id = $_SESSION["s"]["user"]["client_id"]; + $this->cli_grupo_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); + $this->sys_usuario_id = $_SESSION["s"]["user"]["sys_userid"]; + $this->sys_grupo_id = $_SESSION["s"]["user"]["sys_groupid"]; + + } else { + + //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; - //En la tabla dns_soa y dns_rr se guarda el valor 0 en sys_groupid cuando es admin. - $this->cli_grupo_id = 0; + //En la tabla dns_soa y dns_rr se guarda el valor 0 en sys_groupid cuando es admin.NO ESTO NO ES ASÍ + $this->cli_grupo_id = 1; $this->sys_usuario_id = 1;//$this->cli_id; $this->sys_grupo_id = 0;//$this->cli_grupo_id; }else{ @@ -586,6 +770,7 @@ class page_action extends tform_actions { $this->sys_usuario_id = $client['sys_userid']; $this->sys_grupo_id = $client['sys_groupid']; } + } //print "
Valores : "; print_r($this->cli_id); print "
\n"; //print "Valores " . $this->cli_id . ' ' . $this->cli_grupo_id . ' ' . $this->sys_usuario_id . ' ' . $this->sys_grupo_id; @@ -683,7 +868,8 @@ class page_action extends tform_actions { //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', $this->cli_id, /*$fields['client_group_id'],*/ $paramSubDominios); + $app->db->datalogInsert('dns_rr', $paramSubDominios, 'id'); + //$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!


'; @@ -762,7 +948,7 @@ class page_action extends tform_actions { //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, $paramsite, 'sites:web_vhost_domain:on_after_insert'); } public $ip4_servidor_dns; @@ -1445,29 +1631,38 @@ print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/ print "
";print_r($fields);print "
\n";*/ //print "
Formulario ";print_r($formulario);print "
\n"; - //$this->crearBaseDatosFtp($remote); //print 'DNS IPV6 ' . $dns_ip_servidor_ipv6['ip_address']; //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'); +// $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; + print('(3)Final crearDnsSitioWeb'); } + /*$this->cli_id = $_SESSION["s"]["user"]["client_id"]; + $this->cli_grupo_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); + $this->sys_usuario_id = $_SESSION["s"]["user"]["sys_userid"]; + $this->sys_grupo_id = */ function onSubmit() { global $app, $conf; - - $sesionesLog = $_SESSION["s"]["user"]["typ"]; + /*if($_SESSION['s']['user']['typ'] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) + unset($this->dataRecord["client_group_id"]); + */ +/* $sesionesLog = $_SESSION["s"]["user"]["typ"]; $sesionesLog2 = $_SESSION["s"]["user"]; $sesiones = $_SESSION; - //print_r($sesiones); - //print_r($sesionesLog2); + print_r($sesiones); + print_r($sesionesLog2);*/ + //echo('(Sub)Prefix ' . $this->valor_prefix . '(Sub)Prefix ftp ' . $this->valor_prefix_ftp ); if($this->plantillaWebDNS()){ return; } + + //Carga de campos del formulario. $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true); @@ -1510,15 +1705,22 @@ print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/ 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; +// echo('Subdominio ' . $fields['domain']); if($this->comprobarSubDominios($fields['domain'])){ - + print('(1)crearSubDominio'); $this->crearSubDominio($remote, $fields['domain']); - if(!$this->subdom_error){ + /*if(!$this->subdom_error){ $this->crearSitioWebSubdominio($remote); - $this->crearBaseDatosFtp($remote); - } + + if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])){ + $this->crearBaseDatosFtpClientes($remote); + }else{ + $this->crearBaseDatosFtp($remote); + } + }*/ } else { + print('(2)crearDnsSitioWeb'); if(!$this->dominio_error){ $this->crearDnsSitioWeb($remote); //$variablePHP = ""; @@ -1527,15 +1729,23 @@ print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/ 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 él antes de ejecutarla. +// $app->tform->loadFormDef('form/new_service_webdns.tform.php'); + /* if(!$app->auth->is_admin()){ + //if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])){ + $this->crearBaseDatosFtpClientes($remote); + }else{ + echo('Esto es mental ' . $app->auth->is_admin()); + $this->crearBaseDatosFtp($remote); + }*/ + }else{ $this->onError(); return; } - + + //if($_SESSION['s']['user']['typ'] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) unset($this->dataRecord["client_group_id"]); } } } diff --git a/templates/new_service_webdns.htm b/templates/new_service_webdns.htm index 4e94e43..b0f1e07 100755 --- a/templates/new_service_webdns.htm +++ b/templates/new_service_webdns.htm @@ -21,64 +21,26 @@ {tmpl_var name='client_group_id'} - - - - - - - @@ -95,7 +57,7 @@
- +