2017-09-01 18:13:25 +02:00
< ? php
switch ( $resource ) {
case 'login' :
2017-09-04 11:53:30 +02:00
// Controllo sulle credenziali
2017-09-01 18:13:25 +02:00
if ( Auth :: getInstance () -> attempt ( $request [ 'username' ], $request [ 'password' ])) {
2018-02-20 14:23:00 +01:00
$token = Auth :: getInstance () -> getToken ();
2017-09-01 18:13:25 +02:00
2017-09-04 11:53:30 +02:00
// Informazioni da restituire tramite l'API
2017-09-04 10:24:44 +02:00
$results = $dbo -> fetchArray ( 'SELECT `ragione_sociale`, `codice`, `piva`, `codice_fiscale`, `indirizzo`, `citta`, `provincia`, (SELECT `nome` FROM `an_nazioni` WHERE `an_nazioni`.`id` = `an_anagrafiche`.`id_nazione`) AS nazione, `telefono`, `fax`, `cellulare`, `an_anagrafiche`.`email` FROM `zz_users` LEFT JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `zz_users`.`idanagrafica` WHERE `id` = ' . prepare ( $user [ 'id_utente' ]))[ 0 ];
2017-09-01 18:13:25 +02:00
$results [ 'token' ] = $token ;
2017-09-04 10:24:44 +02:00
} else {
$results = [
'status' => API :: getStatus ()[ 'unauthorized' ][ 'code' ],
];
2017-09-04 11:53:30 +02:00
// Se è in corso un brute-force, aggiunge il timeout
2017-09-04 10:24:44 +02:00
if ( Auth :: isBrute ()) {
$results [ 'timeout' ] = Auth :: getBruteTimeout ();
}
}
break ;
2017-09-04 11:53:30 +02:00
// Operazione di logout
2017-09-04 10:24:44 +02:00
case 'logout' :
if ( ! empty ( $request [ 'token' ]) && ! empty ( $user )) {
2017-09-04 16:04:45 +02:00
// Cancellazione della chiave
2017-09-04 10:24:44 +02:00
$database -> query ( 'DELETE FROM `zz_tokens` WHERE `token` = ' . prepare ( $request [ 'token' ]) . ' AND `id_utente` = ' . prepare ( $user [ 'id_utente' ]));
2017-09-01 18:13:25 +02:00
} else {
$results = [
'status' => API :: getStatus ()[ 'unauthorized' ][ 'code' ],
];
}
break ;
}
return [
'login' ,
2017-09-04 11:53:30 +02:00
'logout' ,
2017-09-01 18:13:25 +02:00
];