diff --git a/new_service_webdns.php b/new_service_webdns.php
index c1e3b5c..feb6515 100755
--- a/new_service_webdns.php
+++ b/new_service_webdns.php
@@ -82,31 +82,105 @@ class page_action extends tform_actions {
public $pass_ftp_txt;
+ function generaPass(){
+ //Cadena de caractares para construir las password.
+ $cadena = "abcdefghijklmnopqrstuvwxyz!@#_ABCDEFGHIJKLMNOPQRSTUVWXYZ23456789";
+ $cadSpeciales = "!@#_";
+
+ //Obtengo la longitud de las cadenas
+ $longitudCadena=strlen($cadena);
+ $longSpeciales = strlen($cadSpeciales);
+
+ //Variable para la password
+ $pass = "";
+ //Longitud para la password
+ $longitudPass=13;
+
+ //Creo la password
+ for($i=1 ; $i<=$longitudPass ; $i++){
+ //Número aleatorio entre 0 y la longitud de la cadena de caracteres-1
+ $pos=rand(0,$longitudCadena-1);
+ //Formo la password en cada iteraccion del bucle, añadiendo a la cadena $pass
+ //la letra correspondiente a la posicion $pos en la cadena de caracteres definida.
+ $pass .= substr($cadena,$pos,1);
+ //Añado algún caracter especial en los últimos cuatro caracteres
+ for($i2=13;$i2<=$i; $i2++){
+ $poSpecial=rand(0,$longSpeciales-1);
+ $pass .= substr($cadSpeciales, $poSpecial, 1);
+ }
+ }
+ return $pass;
+ }
+
+ /*function comprobarPass($claveGenerada){
+ //compruebo que el tamaño del string sea válido.
+ if (strlen($claveGenerada)<3 || strlen($claveGenerada)>20){
+ echo $claveGenerada . " no es válida0
";
+ return false;
+ }
+
+ //compruebo que los caracteres sean los permitidos
+ $alphachars = "abcdefghijkmnopqrstuvwxyz";
+ $upperchars = "ABCDEFGHJKLMNPQRSTUVWXYZ";
+ $numchars = "23456789";
+ $specialchars = "!@#_";
+
+ //$permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
+
+
+ if (ereg("^[a-zA-Z0-9\-_]{3,20}$", $claveGenerada)) {
+ echo $claveGenerada . " es válido
";
+ return true;
+ } else {
+ echo $claveGenerada . " NO válido
";
+ return false;
+ }
+
+ echo $claveGenerada . " es válido
";
+ return true;
+ }*/
+
+
function crearBaseDatosFtp($remoto){
global $app, $conf;
$fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);
// generate username lo uso para generar el nombre del usuario y nombre BBDD y usuario FTP
- $generated_username = $fields['client_id'].substr(sha1(rand()), 0, 8);//client_prefix.substr(sha1(rand()), 0, 8);
+
+ $app->uses('ini_parser,getconf');
+ $server_config_array = $app->getconf->get_global_config();
+
+ //Tomo el valor mínimo de dígitos que tiene que tener la contraseña
+ $min_password_length = 10;
+ //if(isset($server_config_array['misc']['min_password_length'])) {
+ $min_password_length = $app->functions->intval($server_config_array['misc']['min_password_length']);
+ //}
+ //print "Cantidad de digitos: " . $min_password_length;
+ //print 'La clave ' . $this->generaPass();
+
+ $generated_username = $fields['client_id'].substr(sha1(rand()), 0, 10);//client_prefix.substr(sha1(rand()), 0, 8);
//print "
"; print_r($generated_username); print "\n"; $sitio_id = $app->db->queryOneRecord('SELECT domain_id, domain FROM web_domain WHERE domain = "'.$fields['domain'].'"'); //print "
"; print_r($camDnsRR); print "\n"; $camDnsRR = $app->db->queryOneRecord('SELECT server_id, zone FROM dns_rr WHERE name LIKE "'.$this->dominio.'%"'); - + $clavePass = $this->generaPass(); //*Recupero todos los prefix necesarios $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); $dbname_prefix = $app->tools_sites->replacePrefix($global_config['dbname_prefix'], $this->dataRecord); $ftpuser_prefix = $app->tools_sites->replacePrefix($global_config['ftpuser_prefix'], $this->dataRecord); - - + + /*if(isset($dbuser_prefix)){ + print 'BBDD prefix-->' . $dbuser_prefix . "<-->" . $generated_username; + }*/ // añado database user con su prefix $db_user_params = array( 'server_id' => $camDnsRR['server_id'], 'database_user' => $dbuser_prefix . $generated_username, - 'database_password' => substr(sha1(rand()), 0, 10) + 'database_password' => $clavePass//substr(sha1($dbuser_prefix . $generated_username), 0, 16) + //substr(sha1(rand()), 0, 20) ); $this->usuario_db_txt = $db_user_params['database_user']; @@ -147,20 +221,20 @@ class page_action extends tform_actions { // add ftp user $ftp_params = array( - 'server_id' => $camDnsRR['server_id'],//$template['web_server_id'], - 'parent_domain_id' => $sitio_id['domain_id'],//$site_id, + 'server_id' => $camDnsRR['server_id'], + 'parent_domain_id' => $sitio_id['domain_id'], 'username' => $ftpuser_prefix . $generated_username, - 'password' => substr(sha1(rand()), 0, 10), - 'quota_size' => '-1',//$template['hd_quota'], + 'password' => $clavePass,//substr(sha1(rand()), 0, 10), + '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',//$template['quota_files'], - 'ul_ratio' => '-1',//$template['ul_ratio'], - 'dl_ratio' => '-1',//$template['dl_ratio'], - 'ul_bandwidth' => '-1',//$template['ul_bandwidth'], - 'dl_bandwidth' => '-1',//$template['dl_bandwidth'], + 'quota_files' => '-1', + 'ul_ratio' => '-1', + 'dl_ratio' => '-1', + 'ul_bandwidth' => '-1', + 'dl_bandwidth' => '-1', 'active' => 'y', ); $this->usuario_ftp_txt = $ftp_params['username']; @@ -190,14 +264,7 @@ class page_action extends tform_actions { Nuevo dominio: '. $fields['domain'].'
';
-*/
$eldom = $fields['domain'];
echo '';
echo '';
-
- //echo '';
- /*echo 'Crear PDF';*/
- //$datos_test = 'Datos muchosssss datos';
-
- //echo'';
- //echo 'Pedefeando '.$datos_test.'';
-
- /*echo '
PDF';
-*/
- //echo '';
-
}
//Expresiones regulares para comprobar si es subdominio
@@ -266,16 +315,10 @@ class page_action extends tform_actions {
//print "Subdomino: " . $this->subdomino . "\n Dominio: " . $this->domino;
$this->es_subdominio = true;
-
}
//print "El dominio es: " . $this->dominio;
return $this->es_subdominio;
}
-
- function onAfterInsert(){
- global $app, $conf;
- $app->uses('sites_database_plugin');
- }
//Crear subdominio
function crearSubDominio($remoto, $campoSubDominio){
@@ -336,12 +379,9 @@ class page_action extends tform_actions {
echo '
Se ha dado de alta Web y Subdominio, '.$this->subdominio.', ¡Correctamente!
';
- /*echo '
- Usuario de la Base de Datos: '. $this->usuario_db_txt .', Contraseña: ' . $this->pass_db_txt . '
';
- */
+
//$this->onShow();
}
-
}
function crearSitioWebSubdominio($remoto){
@@ -410,8 +450,6 @@ class page_action extends tform_actions {
'client_group_id' => $client_group_id,
);
-
-
//$app->uses('remoting_lib');
//$formulario = $app->remoting_lib->loadFormDef('../sites/form/web_vhost_domain.tform.php');
//$formulario = $app->tform->loadFormDef('../sites/form/web_vhost_domain.tform.php');
@@ -423,18 +461,14 @@ class page_action extends tform_actions {
print "";print_r($fields);print "
\n" . $fields['client_id'];*/
//print "Formulario ";print_r($formulario);print "
\n";
-
//print 'DNS IPV6 ' . $dns_ip_servidor_ipv6['ip_address'];
-
//$tform_def_file2 = "../sites/form/web_vhost_domain.tform.php";
//$app->tform->loadFormDef($tform_def_file2);
//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_id'], $paramsite, 'sites:web_vhost_domain:on_after_insert');
//print 'ID sitio web del subdominio --> ' . $site_id;
-
-
}
function tieneIPs(){
@@ -563,14 +597,13 @@ class page_action extends tform_actions {
}
} // end foreach
-
-
+
//Llamada a la tabla client para recuperar el client_id y su default_dnsserver
$dns_servidor = $app->db->queryOneRecord("SELECT client_id, default_dnsserver, default_webserver FROM client WHERE client_id = ".$app->functions->intval($fields['client_id']));
$valor_recuperado1 = $dns_servidor['client_id'];
/*$valor_recuperado2 = $dns_servidor['default_dnsserver'];
- $valor_recuperado3 = $dns_servidor['default_webserver'];
-*/
+ $valor_recuperado3 = $dns_servidor['default_webserver'];*/
+
// Insert the soa record
$sys_userid = $_SESSION['s']['user']['userid'];
$origin = $vars['origin'];
@@ -634,10 +667,8 @@ class page_action extends tform_actions {
//sites_web_domain_add
$tform_def_file = "../sites/form/web_vhost_domain.tform.php";
$app->tform->loadFormDef($tform_def_file);
-
- //$app->remoting_lib->loadFormDef($tform_def_file);
- // add site
+ // add site
$paramsite = array(
'type' => 'vhost',
'domain' => $fields['domain'],
@@ -693,12 +724,6 @@ 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_id'], $paramsite, 'sites:web_vhost_domain:on_after_insert');
//print 'Sitio id '. $site_id;
- //$this->crearBaseDatosFtp($remote);
- // get site data
- /*$app->uses('remoting_lib');
- $app->remoting_lib->loadFormDef('../sites/form/web_vhost_domain.tform.php');
- $site_data = $app->remoting_lib->getDataRecord($site_id);*/
-
}
function onSubmit() {
@@ -712,7 +737,6 @@ class page_action extends tform_actions {
if($this->tieneIPs()){
return;
}
-
if($this->existeDominio($fields)){
return;
}
@@ -737,21 +761,18 @@ class page_action extends tform_actions {
} else {
$this->crearSitioDns($remote);
-
+ //$variablePHP = "";
//Si todo va bien, el resultado de la web y dns
echo '
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 el antes de ejecutarla.
+ //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);
}
-
-
}
-
}
@@ -797,83 +818,63 @@ $page = new page_action;
$page->onLoad();
+//IMPORTENTE, es necesario estas líneas para que el botón del pdf funcione. Activa el javascript
+//echo '';
+
+
?>
+
+
+ for(i = 0; i < upperlen; i++) {
+ password += upperchars.charAt(Math.floor(Math.random() * upperchars.length));
+ }
+
+ for(i = 0; i < num_special; i++) {
+ password += specialchars.charAt(Math.floor(Math.random() * specialchars.length));
+ }
+
+ for(i = 0; i < numericlen; i++) {
+ password += numchars.charAt(Math.floor(Math.random() * numchars.length));
+ }
+
+ password = password.split('').sort(function() { return 0.5 - Math.random(); }).join('');
+
+ return password;
+}*/
+
+
\ No newline at end of file
diff --git a/version_webdns.php b/version_webdns.php
index fab3605..a19bd62 100755
--- a/version_webdns.php
+++ b/version_webdns.php
@@ -23,7 +23,7 @@ require_once '../../lib/app.inc.php';
//$app->auth->check_module_permissions('help');
//if($_SESSION['s']['user']['typ'] == 'admin') {
- echo '
'.$app->lng('Versión de WebDNS:').' 1.2 develop
';
+ echo '
'.$app->lng('Versión de WebDNS:').' 1.2
';
//}
?>