Procházet zdrojové kódy

Problemas cuando un usuario ejecuta el módulo, no funciona y pasa a ser admin.

develop
David Ramos před 8 roky
rodič
revize
d83b1b1bec
3 změnil soubory, kde provedl 328 přidání a 131 odebrání
  1. +28
    -3
      form/new_service_webdns.tform.php
  2. +291
    -81
      new_service_webdns.php
  3. +9
    -47
      templates/new_service_webdns.htm

+ 28
- 3
form/new_service_webdns.tform.php Zobrazit soubor

@@ -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'
),*/
)
);

+ 291
- 81
new_service_webdns.php Zobrazit soubor

@@ -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 = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</option>';
@@ -71,7 +95,7 @@ class page_action extends tform_actions {
$client_select .= "<option value='$rec[groupid]' $selected>$rec[contactname]</option>\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"]).'<br />';

@@ -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"]).'<br />';

//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.').'<br />';
}

/* 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 "<pre>"; print_r($generated_usernameBBDD); print "</pre>\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 "<pre>"; print_r($camDnsRR); print "</pre>\n";
//$camDnsRR = $app->db->queryOneRecord('SELECT server_id, zone FROM dns_rr WHERE name LIKE "'.$this->dominio.'."');
//print "<pre>"; print_r($fields['client_id']); print "</pre>\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 "<pre> USUARIO BBDD "; print_r($db_user_params); print "</pre>\n";
//print "<br>". $this->cli_id;
//print "<br>". $this->usuario_db_txt;
//print "<br>". $this->pass_db_txt;
//print "<pre>"; print_r($fields); print "</pre>\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 "<pre> BBDD "; print_r($paramsBD); print "</pre>\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 "<pre> FTP "; print_r($ftp_params); print "</pre>\n";
//print "<pre>"; print_r($site_data); print "</pre>\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 '<br><div class="alert alert-success"><br>
Altas de BBDD y FTP, ¡Correctas!<br><br>
Usuario BBDD: <b>'. $this->usuario_db_txt .'</b><br>Contraseña: <b>' . $this->pass_db_txt . '
</b><br>Nombre BBDD: <b>' . $this->nombre_db_txt . '</b><br>
<br>Usuario FTP: <b>'. $this->usuario_ftp_txt .'</b><br>Contraseña: <b>' . $this->pass_ftp_txt . '</b><br><br>
</div></br>';

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

$html_resultado = '<br><br><b>BBDD</b><br>
Usuario: <b>'. $this->usuario_db_txt .'</b><br>
Nombre Base de Datos: <b>' . $this->nombre_db_txt .'</b><br>
Clave: <b>' . $this->pass_db_txt . '</b><br><br>
<b>FTP</b><br>
Usuario: <b>'. $this->usuario_ftp_txt .'</b><br>
Clave: <b>' . $this->pass_ftp_txt . '</b><br><br>
<b> </b><br>Nuevo dominio: <b>'. $fields['domain'].'</b><br><br>';

$eldom = $fields['domain'];
echo '<form method="post" id="formulario" action="webdns/pdf_o6h.php" target="_blank">';
echo '<input id="pdf_power" name="pdf_power" type="hidden" value="'.$html_resultado.'">';
echo '<input id="nombre_bd" name="nombre_bd" type="hidden" value="'.$this->nombre_db_txt.'">';
echo '<input id="usuario_bd" name="usuario_bd" type="hidden" value="'.$this->usuario_db_txt.'">';
echo '<input id="pass_bd" name="pass_bd" type="hidden" value="'.$this->pass_db_txt.'">';
echo '<input id="usuario_ftp" name="usuario_ftp" type="hidden" value="'.$this->usuario_ftp_txt.'">';
echo '<input id="pass_ftp" name="pass_ftp" type="hidden" value="'.$this->pass_ftp_txt.'">';
echo '<input id="ip4" name="ip4" type="hidden" value="'.$this->ip4_pdf.'">';
echo '<input id="url_db" name="url_db" type="hidden" value="'.$this->url_db.'">';
echo '<input id="dominio_nuevo" name="dominio_nuevo" type="hidden" value="'.$eldom.'">';
echo '<input type="submit" class="btn btn-default formbutton-success" value="Descargar PDF">';
echo '</form>';

echo '<div id="resp"></div>';
}

function crearBaseDatosFtp($remoto){
global $app, $conf;
@@ -357,17 +519,20 @@ class page_action extends tform_actions {
//print "<pre>"; print_r($generated_usernameBBDD); print "</pre>\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 "<pre>"; print_r($camDnsRR); print "</pre>\n";
//$camDnsRR = $app->db->queryOneRecord('SELECT server_id, zone FROM dns_rr WHERE name LIKE "'.$this->dominio.'."');
//print "<pre>"; print_r($fields['client_id']); print "</pre>\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 "<pre> USUARIO BBDD "; print_r($db_user_params); print "</pre>\n";
print "<pre> USUARIO BBDD "; print_r($db_user_params); print "</pre>\n";
//print "<br>". $this->cli_id;
//print "<br>". $this->usuario_db_txt;
//print "<br>". $this->pass_db_txt;
//print "<pre>"; print_r($fields); print "</pre>\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 "<pre> BBDD "; print_r($paramsBD); print "</pre>\n";
print "<pre> BBDD "; print_r($paramsBD); print "</pre>\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 "<pre> FTP "; print_r($ftp_params); print "</pre>\n";
//print "<pre>"; print_r($site_data); print "</pre>\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 '<br><div class="alert alert-success"><br>
Altas de BBDD y FTP, ¡Correctas!<br><br>
@@ -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 "<pre>Seleccionado: "; print_r($fields['client_group_id']); print "</pre>\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 "<pre>Valores : "; print_r($this->cli_id); print "</pre>\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 "<pre>"; print_r($paramSubDominios); print "</pre>\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 '<br><div class="alert alert-success"><br>
Se ha dado de alta Web y Subdominio, <b>'.$this->subdominio.'</b>, ¡Correctamente!
<br><br></div></br>';
@@ -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 "<pre>IP6 WEB ";print_r($this->ip6_servidor_web);print "</pre>\n";*/
print "<pre>";print_r($fields);print "</pre>\n";*/
//print "<pre>Formulario ";print_r($formulario);print "</pre>\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 "<pre>IP6 WEB ";print_r($this->ip6_servidor_web);print "</pre>\n";*/
echo ('Tabla sys_user --> userid ' . $this->sys_usuario_id . " <br>");
echo ('Tabla sys_user --> sys_groupid ' . $this->sys_grupo_id . " <br>");*/
//print "Subdomino: " . $this->subdomino . "</p>\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 = "<script> document.write(test) </script>";
@@ -1527,15 +1729,23 @@ print "<pre>IP6 WEB ";print_r($this->ip6_servidor_web);print "</pre>\n";*/
Altas Web y DNS del dominio <b>'.$fields['domain'].'</b>, ¡Creadas correctamente!
<br><br></div></br>';

//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"]);
}
}
}


+ 9
- 47
templates/new_service_webdns.htm Zobrazit soubor

@@ -21,64 +21,26 @@
{tmpl_var name='client_group_id'}
</select></div>
</div>
</tmpl_if>

<!--div class="form-group">
<label for="username" class="col-sm-3 control-label">{tmpl_var name='username_txt'}</label>
</tmpl_if>
<div class="col-sm-9">
<div class="input-group">
<span class="input-group-addon" id="username-desc">{tmpl_var name='username_prefix'}</span>
<input type="text" name="username" id="username" value="{tmpl_var name='username'}" class="form-control" aria-describedby="username-desc" />
<!--input type="text" name="username" id="username" value="{tmpl_var name='username'}" class="form-control" aria-describedby="username-desc" / -->
</div>
</div>
</div-->
<!--div class="form-group">
<br>
<div class="form-group">
<label for="database_user" class="col-sm-3 control-label">{tmpl_var name='database_user_txt'}</label>
<div class="col-sm-9">
<div class="input-group">
<span class="input-group-addon" id="database_user-desc">{tmpl_var name='database_user_prefix'}</span>
<input type="hidden" name="database_user_prefix" id="database_user_prefix" value="{tmpl_var name='database_user_prefix'}" class="form-control" />
<span class="input-group-addon" name="database_user_prefix" id="database_user_prefix" value=tmpl_var name='database_user_prefix' name='database_user_prefix'>{tmpl_var name='database_user_prefix'}</span>
<input type="text" name="database_user" id="database_user" value="{tmpl_var name='database_user'}" class="form-control" aria-describedby="database_user-desc" />
</div>
</div>
</div-->
<!--div class="form-group">
<label for="database_password" class="col-sm-3 control-label">{tmpl_var name='database_password_txt'}</label>
<div class="col-sm-9">
<div class="input-group">
<input type="password" name="database_password" id="database_password" value="{tmpl_var name='database_password'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('database_password','repeat_password');" />
<span class="input-group-btn">
<button class="btn btn-default" type="button" onclick="generatePassword('database_password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">{tmpl_var name='password_strength_txt'}</label>
<div class="col-sm-9 checkbox">
<div id="passBar"></div>
<span id="passText">&nbsp;</span>
</div>
</div>
<div class="form-group">
<label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
<div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('database_password','repeat_password');" /></div></div>
<div class="form-group">
<div class="col-sm-offset-3 col-sm-9">
<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
<div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div>
</div>
</div>
<!--div class="form-group">
<label for="database_user" class="col-sm-3 control-label">{tmpl_var name='database_user_txt'}</label>
<div class="col-sm-9">
<div class="input-group">
<span class="input-group-addon" id="database_user-desc">{tmpl_var name='database_user_prefix'}</span>
<input type="text" name="database_user" id="database_user" value="{tmpl_var name='database_user'}" class="form-control" aria-describedby="database_user-desc" />
</div>
</div>
</div-->
</div>

@@ -95,7 +57,7 @@

<div class="clear">
<div class="right">
<button class="btn btn-default formbutton-success" id="dom-edit-submit" type="button" value="{tmpl_var name='btn_save_txt'}">{tmpl_var name='btn_save_txt'}</button>
<button class="btn btn-default formbutton-success" id="dom-edit-submit" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="new_service_webdns.php">{tmpl_var name='btn_save_txt'}</button>
<button class="btn btn-default formbutton-default" data-load-content="webdns/index.php" type="button" value="{tmpl_var name='btn_cancel_txt'}">{tmpl_var name='btn_cancel_txt'}</button>
</div>
</div>


Načítá se…
Zrušit
Uložit