From 204404edd539c59945e36003dc34b027382d2fc1 Mon Sep 17 00:00:00 2001 From: David Ramos Date: Sun, 21 Jan 2018 16:03:58 +0100 Subject: [PATCH] =?UTF-8?q?Activadas=20las=20funciones=20propias=20de=20is?= =?UTF-8?q?pconfig=20para=20la=20creaci=C3=B3n=20de=20bases=20de=20datos?= =?UTF-8?q?=20su=20usuario=20y=20para=20usuarios=20ftp.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- new_service_webdns.php | 198 +++++++++++++++++++++++------------------ 1 file changed, 113 insertions(+), 85 deletions(-) diff --git a/new_service_webdns.php b/new_service_webdns.php index d586db7..8a72356 100755 --- a/new_service_webdns.php +++ b/new_service_webdns.php @@ -26,39 +26,84 @@ $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); +//------LIMITES-------------------------------------------------------------------------------------------------- + $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(); } +//------LIMITES-------------------------------------------------------------------------------------------------- parent::onShowNew(); } 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)); + + //* 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); - +//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"; + $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 = ''; + //$tmp_data_record = $app->tform->getDataRecord($this->id); + if(is_array($records)) { + foreach( $records as $rec) { + $selected = @(is_array($this->dataRecord) && ($rec["groupid"] == $this->dataRecord['client_group_id'] || $rec["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':''; + $client_select .= "\r\n"; + } + } + $app->tpl->setVar("client_group_id", $client_select);*/ + //* 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); +//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"; $records = $app->db->queryAllRecords($sql, $client['client_id']); @@ -87,16 +132,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,6 +161,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(); } @@ -127,11 +180,13 @@ 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; + //$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; +//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 +204,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'])); + } + //* 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; + } } @@ -171,35 +242,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); @@ -258,35 +301,7 @@ 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); @@ -345,7 +360,7 @@ class page_action extends tform_actions { }*/ - function crearBaseDatosFtp($remoto){ + function crearBaseDatosFtp($remoto){ global $app, $conf; $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true); @@ -357,21 +372,21 @@ 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 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, + 'sysgroup_id' => $this->cli_grupo_id,//$this->sys_grupo_id, 'sys_userid' => $this->sys_usuario_id, 'sys_perm_other' => '-', 'database_user' => $generated_usernameBBDD, @@ -388,12 +403,24 @@ 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'); - + $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'); + //echo('El id ' . $this->id); +// $remoto2 = new remote_actions; +// $remoto->sites_database_user_after_add($this->cli_grupo_id, $db_user_params); + //echo(' El cliente en webdns ' . $this->cli_id); + //$db_user_id = $remoto2->sites_database_user_add(1, $this->cli_id, $db_user_params, 'sites:web_database_user:on_after_insert'); + /*$sql = "INSERT INTO web_database_user (dbtable,dbidx,server_id,action,tstamp,user,data) VALUES (?, ?, ?, ?, ?, ?, ?)"; + $app->db->query($sql, $db_table, $dbidx, $server_id, $action, time(), $username, $diffstr); +*/ + //$app->tform->datalogSave('INSERT', 'database_user_id', array(), $db_user_params); + //$app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', 1, array(), $db_user_params); + //$db_user_id = $app->db->datalogInsert('web_database_user', $db_user_params, 'database_user_id'); + // 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, //$fields['client_group_id'], 'parent_domain_id' => $sitio_id['domain_id'], 'type' => 'mysql', 'database_quota' => '-1', @@ -409,7 +436,7 @@ class page_action extends tform_actions { $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_grupo_id, /*$this->cli_id,*//*$fields['client_group_id'],*/ $paramsBD); $this->urlBBDD($db_id, $this->bbdd_serv); //echo('Id de la BBDD ' . $db_id); @@ -417,6 +444,7 @@ class page_action extends tform_actions { //$app->uses('remoting_lib'); $app->remoting_lib->loadFormDef('../sites/form/web_vhost_domain.tform.php'); $site_data = $app->remoting_lib->getDataRecord($sitio_id); +// $site_data = $remoto->getDataRecordWebDNS($sitio_id); $this->nombre_user_ftp = $this->generaNombreFTP(); // add ftp user @@ -442,9 +470,9 @@ 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); +// $remoto->sites_ftp_user_after_insert(); echo '

Altas de BBDD y FTP, ¡Correctas!

Usuario BBDD: '. $this->usuario_db_txt .'
Contraseña: ' . $this->pass_db_txt . '