Controlla che l'utente che voglio eliminare non presenti logs associati

This commit is contained in:
Luca 2024-03-05 15:12:39 +01:00
parent 6318f722bd
commit 8e42483c7e
3 changed files with 42 additions and 5 deletions

View File

@ -333,7 +333,7 @@ if (empty($record) || !$has_access) {
echo '
<div id="tab_info" class="tab-pane">';
$operations = $dbo->fetchArray('SELECT `zz_operations`.*, `zz_users`.`username` FROM `zz_operations` JOIN `zz_users` ON `zz_operations`.`id_utente` = `zz_users`.`id` WHERE id_module = '.prepare($id_module).' AND id_record = '.prepare($id_record).' ORDER BY `created_at` DESC LIMIT 200');
$operations = $dbo->fetchArray('SELECT `zz_operations`.*, `zz_users`.`username` FROM `zz_operations` LEFT JOIN `zz_users` ON `zz_operations`.`id_utente` = `zz_users`.`id` WHERE id_module = '.prepare($id_module).' AND id_record = '.prepare($id_record).' ORDER BY `created_at` DESC LIMIT 200');
if (!empty($operations)) {
echo '

View File

@ -148,13 +148,43 @@ switch (filter('op')) {
// Elimina utente + disattivazione token
case 'delete_user':
if ($dbo->query('DELETE FROM zz_users WHERE id='.prepare($id_utente))) {
flash()->info(tr('Utente eliminato!'));
if ($dbo->query('DELETE FROM zz_tokens WHERE id_utente='.prepare($id_utente))) {
flash()->info(tr('Token eliminato!'));
$utente = User::find($id_utente);
/* Controlla che non posso auto eliminarmi */
if (Auth::user()->id != $utente->id) {
/* Controlla che l'utente che voglio eliminare non presenti logs associati */
if (count($utente->logs)>0){
if ($dbo->query('DELETE FROM zz_users WHERE id='.prepare($id_utente))) {
flash()->info(tr('Utente eliminato!'));
if ($dbo->query('DELETE FROM zz_tokens WHERE id_utente='.prepare($id_utente))) {
flash()->info(tr('Token eliminato!'));
}
}
}
else {
flash()->error(tr('L\'utente _USER_ presenta dei log attivi. Impossibile eliminare utente.', ['_USER_' => $utente->username]));
$dbo->update('zz_users', [
'enabled' => 0,
], ['id' => $id_utente]);
flash()->info(tr('Utente disabilitato!'));
if ($dbo->query('DELETE FROM zz_tokens WHERE id_utente='.prepare($id_utente))) {
flash()->info(tr('Token eliminato!'));
} flash()->info(tr('Token eliminato!'));
}
}else{
flash()->error(tr('L\'utente _USER_ è l\'utente attuale. Impossibile eliminare utente.', ['_USER_' => $utente->username]));
}
break;
// Abilita API utente

View File

@ -41,6 +41,13 @@ class OperationLog extends Model
return self::$info[$name];
}
/**
* Build a new model instance and save it to the database.
*
* @param mixed $operation
* @return static|null
*/
public static function build($operation)
{
if (!\Auth::check()) {