From be110b86b601a9343206cd00501b4820dc7aa9cc Mon Sep 17 00:00:00 2001
From: David Ramos
Date: Fri, 12 Jan 2018 12:46:17 +0100
Subject: [PATCH] =?UTF-8?q?Solucionado=20problema=20con=20campo=20de=20dom?=
=?UTF-8?q?inio=20vac=C3=ADo.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
new_service_webdns.php | 88 +++++++++++++++++++++---------------------
1 file changed, 43 insertions(+), 45 deletions(-)
diff --git a/new_service_webdns.php b/new_service_webdns.php
index 071717b..6b1c99c 100755
--- a/new_service_webdns.php
+++ b/new_service_webdns.php
@@ -19,8 +19,14 @@ $tform_def_file = "form/new_service_webdns.tform.php";
//Check permissions for module
$app->auth->check_module_permissions('webdns');
+//Check the module permissions and redirect if not allowed.
+/*if(!stristr($_SESSION['s']['user']['modules'],'customdns')) {
+ header('Location: ../index.php');
+ die;
+}*/
+
//Loading classes a usar.
-$app->uses('tpl,tform,tform_actions,remoting,tools_sites,remoting_lib,remoting_dns,validate_dns');
+$app->uses('tpl,tform,tform_actions,remoting,tools_sites,remoting_lib,remoting_dns');
$app->load('tform_actions');
@@ -77,7 +83,7 @@ class page_action extends tform_actions {
//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"]);
@@ -144,7 +150,7 @@ class page_action extends tform_actions {
parent::onShowEnd();
}
-
+
public $valor_prefix;
public $valor_prefix_ftp;
@@ -196,8 +202,8 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16)
} 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'])) {
+ //* 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 = $fields['database_user_prefix'];
}
}
@@ -700,7 +706,6 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16)
//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;
@@ -869,7 +874,7 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16)
//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 '
Se ha dado de alta Web y Subdominio, '.$this->subdominio.', ¡Correctamente!
';
@@ -948,7 +953,7 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16)
//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;
@@ -973,6 +978,14 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16)
$global_config_sitio = $app->getconf->get_global_config('sites');
$global_config_dns = $app->getconf->get_global_config('dns');
+/* $server_id = intval($global_config_sitio['default_webserver']);
+ if(!$server_id){
+ $default_web_server = $app->db->queryOneRecord("SELECT server_id FROM server WHERE web_server = ? ORDER BY server_id LIMIT 0,1", 1);
+ $server_id = $default_web_server['server_id'];
+ }
+ $web_config = $app->getconf->get_server_config($server_id, 'web');
+ echo(' Server id ' . $server_id . ' default web ' . $default_web_server . ' webConfig ' . print_r($web_config));
+*/
if(!$global_config_dns['default_dnsserver']) {
$app->tform->errorMessage = $app->tform->wordbook['error_no_servidor_default']. 'DNS.';
$this->onError();
@@ -1384,7 +1397,7 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16)
//}
return false;
}
-
+
//Comprobación de que tenemos instalada nuestra plantilla
function plantillaWebDNS(){
global $app;
@@ -1395,29 +1408,24 @@ if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16)
return true;
}
}
-
+
//Comprueba que no exista el dominio y que no tenga sitio web, puede tener sitio web y no tener dns.
function existeDominio($campos){
global $app, $conf;
- //if($app->db->queryOneRecord('SELECT * FROM dns_soa WHERE origin LIKE "'.$campos['domain'].'%"')) {
- if($app->db->queryOneRecord('SELECT * FROM dns_soa WHERE origin = "'.$campos['domain'].'."')) {
- $app->tform->errorMessage = $app->tform->wordbook['domain_error_unique_webdns'];
- $this->onError();
- return true;
+ if($app->db->queryOneRecord('SELECT * FROM dns_soa WHERE origin LIKE "'.$campos['domain'].'."')) {
+ $app->tform->errorMessage = $app->tform->wordbook['domain_error_unique'];
}
if($app->db->queryOneRecord('SELECT domain_id, domain FROM web_domain WHERE domain = "'.$campos['domain'].'"')) {
$app->tform->errorMessage = $app->tform->wordbook['error_sitio_web_existe'];
- $this->onError();
- return true;
}
-
- /*if($app->tform->errorsMessage)
+ //IMPORTANTE. AQUI CONTROLAMOS LOS ERRORES QUE SE VALIDAN EN EL FORMULARIO, EN ESTE CASO EL CAMPO DEL DOMINIO.
+ if($app->tform->errorMessage)
{
$this->onError();
return true;
- }*/
+ }
}
public $ip4_ultima;
@@ -1513,7 +1521,7 @@ print "IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/
} // end foreach
// Insert the soa record
- $sys_userid = $this->cli_id;//$cliente_id_seleccionado;//$fields['client_group_id'];
+ //$sys_userid = $this->cli_id;//$cliente_id_seleccionado;//$fields['client_group_id'];
$origin = $vars['origin'];
$ns = $vars['ns'];
$mbox = str_replace('@', '.', $vars['mbox']);
@@ -1586,7 +1594,7 @@ print "IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/
//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',
@@ -1640,16 +1648,10 @@ print "IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/
//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;
- /*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;
@@ -1662,7 +1664,6 @@ print "IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/
return;
}
-
//Carga de campos del formulario.
$fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);
@@ -1705,7 +1706,6 @@ 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']);
@@ -1720,7 +1720,6 @@ print "IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/
}*/
} else {
- print('(2)crearDnsSitioWeb');
if(!$this->dominio_error){
$this->crearDnsSitioWeb($remote);
//$variablePHP = "";
@@ -1729,23 +1728,22 @@ 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');
- /* 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);
- }*/
-
+ //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"]);
+
}
}
}