2019-07-18 18:33:56 +02:00
< ? php
2020-09-07 15:04:06 +02:00
/*
* OpenSTAManager : il software gestionale open source per l ' assistenza tecnica e la fatturazione
2021-01-20 15:08:51 +01:00
* Copyright ( C ) DevCode s . r . l .
2020-09-07 15:04:06 +02:00
*
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < https :// www . gnu . org / licenses />.
*/
2019-07-18 18:33:56 +02:00
include_once __DIR__ . '/../../core.php' ;
2022-11-24 12:47:34 +01:00
use Models\Group ;
2019-07-18 18:33:56 +02:00
use Models\User ;
$name = filter ( 'name' );
$value = filter ( 'value' );
switch ( $name ) {
case 'username' :
$disponibile = User :: where ([
[ 'username' , $value ],
2019-07-25 17:20:24 +02:00
[ 'id' , '<>' , $id_record ],
2019-07-18 18:33:56 +02:00
]) -> count () == 0 ;
2024-02-25 16:08:22 +01:00
$message = ( $disponibile ? tr ( " L'username è disponibile " ) : tr ( " L'username _COD_ è già stato utilizzato " , [ '_COD_' => $value ])) . '.' ;
2019-07-18 18:33:56 +02:00
$result = $disponibile ;
// Lunghezza minima del nome utente (username)
$min_length_username = 4 ;
if ( strlen ( $value ) < $min_length_username ) {
2024-02-25 16:08:22 +01:00
$message .= '<br>' . tr ( " Lunghezza dell'username non sufficiente: inserisci _MIN_ caratteri o più " , [ '_MIN_' => $min_length_username ] ) . '.' ;
2019-07-18 18:33:56 +02:00
$result = false ;
}
$response = [
'result' => $result ,
'message' => $message ,
];
break ;
2022-11-24 12:47:34 +01:00
2024-01-15 15:30:45 +01:00
case 'gruppo' :
2022-11-24 12:47:34 +01:00
$disponibile = Group :: where ([
[ 'nome' , $value ],
2024-01-15 15:30:45 +01:00
// ['id', '<>', $id_record],
2022-11-24 12:47:34 +01:00
]) -> count () == 0 ;
2024-02-25 16:08:22 +01:00
$message = ( $disponibile ? tr ( 'Il nome del gruppo è disponibile' ) : tr ( 'Il nome del gruppo _COD_ è già stato utilizzato' , [ '_COD_' => $value ])) . '.' ;
2022-11-24 12:47:34 +01:00
$result = $disponibile ;
$response = [
'result' => $result ,
'message' => $message ,
];
break ;
2024-02-25 16:08:22 +01:00
case 'email' :
$disponibile = User :: where ([
[ 'email' , $value ],
[ 'email' , '<>' , '' ],
//['idanagrafica', '<>', $id_record],
]) -> count () == 0 ;
$result = $disponibile ;
$message = $disponibile ? '<i class="icon fa fa-check text-green"></i> ' . tr ( 'Questa email non è ancora stata utilizzata' ) : '<i class="icon fa fa-warning text-yellow"></i> ' . tr ( " L'email è già utilizzata in un'altra anagrafica " );
$errors = [];
$check = Validate :: isValidEmail ( $value );
if ( empty ( $check [ 'valid-format' ])) {
$result = false ;
$errors [] = tr ( " L'email _COD_ non possiede un formato valido. " , [
'_COD_' => $value ,
]);
}
if ( isset ( $check [ 'smtp-check' ]) && empty ( $check [ 'smtp-check' ])) {
$result = false ;
$errors [] = tr ( " Impossibile verificare l'origine dell'email. " );
}
$message .= '. ' ;
if ( ! empty ( $errors )) {
$message .= '<br><i class="icon fa fa-times text-red"></i> ' . tr ( '_NUM_ errori' , [ '_NUM_' => count ( $errors )]) . ':<ul>' ;
foreach ( $errors as $error ) {
$message .= '<li>' . $error . '</li>' ;
}
$message .= '</ul>' ;
}
$response = [
'result' => $result ,
'message' => $message ,
];
break ;
2019-07-18 18:33:56 +02:00
}