diff --git a/clases/limites.inc.php b/clases/limites.inc.php
old mode 100644
new mode 100755
diff --git a/database_user_edit.php b/database_user_edit.php
new file mode 100755
index 0000000..be58678
--- /dev/null
+++ b/database_user_edit.php
@@ -0,0 +1,251 @@
+auth->check_module_permissions('sites');
+
+// Loading classes
+$app->uses('tpl,tform,tform_actions');
+$app->load('tform_actions');
+
+class page_action extends tform_actions {
+
+ function onShowNew() {
+ global $app;
+
+ // we will check only users, not admins
+ /* if($_SESSION['s']['user']['typ'] == 'user') {
+ if(!$app->tform->checkClientLimit('limit_database_user')) {
+ $app->error($app->tform->wordbook["limit_database_user_txt"]);
+ }
+ if(!$app->tform->checkResellerLimit('limit_database_user')) {
+ $app->error('Reseller: '.$app->tform->wordbook["limit_database_user_txt"]);
+ }
+ }*/
+
+ 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
+ $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);
+
+ 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);
+
+ // 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']);
+ $records = $app->functions->htmlentities($records);
+ $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);
+ } 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";
+ $clients = $app->db->queryAllRecords($sql);
+ $clients = $app->functions->htmlentities($clients);
+ $client_select = "";
+ //$tmp_data_record = $app->tform->getDataRecord($this->id);
+ if(is_array($clients)) {
+ foreach( $clients as $client) {
+ //$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
+ $selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
+ $client_select .= "\r\n";
+ }
+ }
+ $app->tpl->setVar("client_group_id", $client_select);
+ }
+
+
+ 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']));
+ }
+
+ parent::onShowEnd();
+ }
+
+ function onSubmit() {
+ global $app;
+
+ if($_SESSION['s']['user']['typ'] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) unset($this->dataRecord["client_group_id"]);
+
+ parent::onSubmit();
+ }
+
+ function onBeforeUpdate() {
+ /* global $app, $conf, $interfaceConf;
+
+ //* Get the 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);
+
+ $this->oldDataRecord = $app->db->queryOneRecord("SELECT * FROM web_database_user WHERE database_user_id = ?", $this->id);
+
+ $dbuser_prefix = $app->tools_sites->getPrefix($this->oldDataRecord['database_user_prefix'], $dbuser_prefix);
+ $this->dataRecord['database_user_prefix'] = $dbuser_prefix;
+
+ //* Database username shall not be empty
+ if($this->dataRecord['database_user'] == '') $app->tform->errorMessage .= $app->tform->wordbook["database_user_error_empty"].'
';
+
+ 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(in_array($dbuser_prefix . $this->dataRecord['database_user'], $dbuser_blacklist)) {
+ $app->tform->errorMessage .= $app->lng('Database user not allowed.').'
';
+ }
+
+ if ($app->tform->errorMessage == ''){
+ /* restrict the names if there is no error */
+ /* crop user and db names if they are too long -> mysql: user: 16 chars / db: 64 chars */
+ // $this->dataRecord['database_user'] = substr($dbuser_prefix . $this->dataRecord['database_user'], 0, 16);
+ // }
+
+ /* prepare password for MongoDB */
+ // TODO: this still doens't work as when only the username changes we have no database_password.
+ // taking the one from oldData doesn't work as it's encrypted...shit!
+/*
+ $this->dataRecord['database_password_mongo'] = $this->dataRecord['database_user'].":mongo:".$this->dataRecord['database_password'];
+
+ $this->dataRecord['server_id'] = 0; // we need this on all servers
+*/
+ //parent::onBeforeUpdate();
+ }
+
+ function onBeforeInsert() {
+ /* global $app, $conf, $interfaceConf;
+
+ //* Database username shall not be empty
+ if($this->dataRecord['database_user'] == '') $app->tform->errorMessage .= $app->tform->wordbook["database_user_error_empty"].'
';
+
+ //* Database password shall not be empty
+ if($this->dataRecord['database_password'] == '') $app->tform->errorMessage .= $app->tform->wordbook["database_password_error_empty"].'
';
+
+ //* 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);
+
+ $this->dataRecord['database_user_prefix'] = $dbuser_prefix;
+
+ 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
+
+ /* prepare password for MongoDB */
+// $this->dataRecord['database_password_mongo'] = $this->dataRecord['database_user'].":mongo:".$this->dataRecord['database_password'];
+
+ //parent::onBeforeInsert();
+ }
+
+ function onAfterInsert() {
+ global $app, $conf;
+/*
+ if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) {
+ $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]);
+ $app->db->query("UPDATE web_database_user SET sys_groupid = ?, sys_perm_group = 'riud' WHERE database_user_id = ?", $client_group_id, $this->id);
+ }
+ if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) {
+ $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]);
+ $app->db->query("UPDATE web_database_user SET sys_groupid = ?, sys_perm_group = 'riud' WHERE database_user_id = ?", $client_group_id, $this->id);
+ }*/
+ }
+
+ function onAfterUpdate() {
+ /*global $app, $conf;
+
+ if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) {
+ $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]);
+ $app->db->query("UPDATE web_database_user SET sys_groupid = ?, sys_perm_group = 'riud' WHERE database_user_id = ?", $client_group_id, $this->id);
+ }
+ if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) {
+ $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]);
+ $app->db->query("UPDATE web_database_user SET sys_groupid = ?, sys_perm_group = 'riud' WHERE database_user_id = ?", $client_group_id, $this->id);
+ }*/
+ }
+
+}
+
+$page = new page_action;
+$page->onLoad();
+
+?>
diff --git a/form/database_user.tform.php b/form/database_user.tform.php
new file mode 100755
index 0000000..09d2c32
--- /dev/null
+++ b/form/database_user.tform.php
@@ -0,0 +1,134 @@
+ 0 id must match with id of current user
+$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user
+$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete
+
+$form["tabs"]['database_user'] = array (
+ 'title' => "Database User",
+ 'width' => 100,
+ 'template' => "templates/database_user_edit.htm",
+ 'fields' => array (
+ //#################################
+ // Begin Datatable fields
+ //#################################
+ 'server_id' => array (
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'SELECT',
+ 'default' => '',
+ 'datasource' => array ( 'type' => 'SQL',
+ 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} AND db_server = 1 ORDER BY server_name',
+ 'keyfield'=> 'server_id',
+ 'valuefield'=> 'server_name'
+ ),
+ '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'
+ ),
+ 'database_password' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'PASSWORD',
+ 'validators' => array(
+ 0 => array(
+ 'type' => 'CUSTOM',
+ 'class' => 'validate_password',
+ 'function' => 'password_check',
+ 'errmsg' => 'weak_password_txt'
+ )
+ ),
+ 'encryption' => 'MYSQL',
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
+ ),
+ 'database_password_mongo' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'PASSWORD',
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
+ ),
+ //#################################
+ // ENDE Datatable fields
+ //#################################
+ )
+);
+
+
+?>
diff --git a/form/new_service_webdns.tform.php b/form/new_service_webdns.tform.php
index dcc8b32..15529de 100755
--- a/form/new_service_webdns.tform.php
+++ b/form/new_service_webdns.tform.php
@@ -67,8 +67,8 @@ $form["title"] = "Nuevo servicio Web";
$form["description"] = "";
$form["name"] = "new_service_webdns";
$form["action"] = "new_service_webdns.php";
-//$form["db_table"] = "web_database_user";
-//$form["db_table_idx"] = "database_user_id";
+$form["db_table"] = "server";
+$form["db_table_idx"] = "server_id";
$form["db_history"] = "yes";
$form["tab_default"] = "webdns";
$form["auth"] = 'yes'; // yes / no
diff --git a/lib/lang/en_database_user.lng b/lib/lang/en_database_user.lng
new file mode 100755
index 0000000..dee9ddb
--- /dev/null
+++ b/lib/lang/en_database_user.lng
@@ -0,0 +1,25 @@
+
diff --git a/lib/lang/es_database_user.lng b/lib/lang/es_database_user.lng
new file mode 100755
index 0000000..c1cd3ff
--- /dev/null
+++ b/lib/lang/es_database_user.lng
@@ -0,0 +1,25 @@
+
diff --git a/lib/module.conf.php b/lib/module.conf.php
index 5ddad5c..519c8c3 100755
--- a/lib/module.conf.php
+++ b/lib/module.conf.php
@@ -26,18 +26,18 @@ $module['tab_width'] = '';
// Make sure that the items array is empty
$items = array();
-// Add a menu item with the label 'Send message'
+// Add a menu item with the label 'Nuevo servicio web'
$items[] = array( 'title' => 'Nuevo servicio web',
'target' => 'content',
'link' => 'webdns/new_service_webdns.php',
'html_id' => 'new_service_webdns'
);
-/*$items[] = array( 'title' => 'La BD',
+$items[] = array( 'title' => 'Usuario DB',
'target' => 'content',
- 'link' => 'webdns/database_edit.php',
- 'html_id' =>'db_service'
- );
-
+ 'link' => 'webdns/database_user_edit.php',
+ //'html_id' =>'db_service'
+ );
+/*
$items[] = array( 'title' => 'El FTP',
'target' => 'content',
'link' => 'webdns/ftp_user_edit.php',
diff --git a/new_service_webdns.php b/new_service_webdns.php
index 6b1c99c..22b6631 100755
--- a/new_service_webdns.php
+++ b/new_service_webdns.php
@@ -162,18 +162,17 @@ 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;
-//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;
//echo('(1)Prefix ' . $this->valor_prefix . '(2)Prefix ftp ' . $this->valor_prefix_ftp );
-
-if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16)
+ 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"]).'
';
@@ -190,7 +189,7 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16)
}
$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 */
@@ -228,7 +227,7 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16)
function generaNombreFTP(){
-
+
$this->tratarVariablesPrefix();
//echo ('PreFIX Valor ' . $dbuser_prefix_valor);
@@ -287,36 +286,7 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16)
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);
@@ -374,145 +344,6 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16)
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 "
"; 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 '
"; 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); + //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); +// 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 de siempre ' . $this->valor_prefix . ' Mas mierda ' . $fields['database_user_prefix'] . ' Y mas ' . $this->dataRecord['database_user_prefix']); + + //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, @@ -553,14 +381,24 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) $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 "
"; 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; + //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'], @@ -576,15 +414,15 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) '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); - // get site data para usarlo en la creación de la cuenta ftp, otra forma de cargar una tupla dandole un 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); @@ -613,8 +451,8 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) $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('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 '
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.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{ - $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; + //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{ + $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']; + } + } //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; @@ -839,7 +667,7 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) //print_r($camDominio); //print_r($camDnsRR); - //Si el dominio NO existe mostramos mensaje de error y salimos de la ejecución + //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']; @@ -849,7 +677,7 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) return $this->subdom_error; } else { - //Parametros para la creación de subdominios + //Parametros para la creación de subdominios $paramSubDominios = array( 'server_id' => $camDnsRR['server_id'], 'zone' => $camDnsRR['zone'], @@ -873,8 +701,7 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) //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); - $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); + $resultado = $remoto->insert_query('form/dns_a_webdns.tform.php', $this->cli_id, /*$fields['client_group_id'],*/ $paramSubDominios); echo '
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;//$cliente_id_seleccionado;//$fields['client_group_id']; $origin = $vars['origin']; $ns = $vars['ns']; $mbox = str_replace('@', '.', $vars['mbox']); @@ -1591,10 +1410,10 @@ 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'], + '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'], 'traffic_quota' => '-1', 'hd_quota' => '0', @@ -1639,37 +1458,41 @@ 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'); -// $remoto->insert_query('../sites/form/web_vhost_domain.tform.php', $this->cli_id, /*$cliente_id_seleccionado,*/ $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'); //print 'Sitio id '. $site_id; - print('(3)Final crearDnsSitioWeb'); } function onSubmit() { global $app, $conf; -/* $sesionesLog = $_SESSION["s"]["user"]["typ"]; + /*$sesionesLog = $_SESSION["s"]["user"]["typ"]; $sesionesLog2 = $_SESSION["s"]["user"]; $sesiones = $_SESSION; + $sesionId = $_SESSION["s"]["id"];*/ - print_r($sesiones); - print_r($sesionesLog2);*/ + //print_r($sesiones); + //print('la ssessison es ' .$ssionId); + //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); //Creo la clase remote para usar las librerias $remote = new remote_actions; + /*$sitiosBoom = new sitios_remoting; + $sitiosBoom->test();*/ + if($this->tieneServidorIPs()){ return; } @@ -1707,17 +1530,17 @@ print "
IP6 WEB ";print_r($this->ip6_servidor_web);print "\n";*/ echo ('Tabla sys_user --> sys_groupid ' . $this->sys_grupo_id . "
IP6 WEB ";print_r($this->ip6_servidor_web);print "\n";*/ Altas Web y DNS del dominio '.$fields['domain'].', ¡Creadas correctamente!