From 4388f8609a379b8723e670662c5f3583a9f502f4 Mon Sep 17 00:00:00 2001 From: Luca Date: Wed, 28 Oct 2020 16:39:44 +0100 Subject: [PATCH] Fix creazione utente, abilitazione / disabilitazione token --- modules/utenti/actions.php | 27 ++++++++++++++++-------- modules/utenti/edit.php | 42 +++++++++++++++++++------------------- update/2_4_18.sql | 3 +++ 3 files changed, 43 insertions(+), 29 deletions(-) diff --git a/modules/utenti/actions.php b/modules/utenti/actions.php index c13e39743..b5e15e380 100755 --- a/modules/utenti/actions.php +++ b/modules/utenti/actions.php @@ -40,14 +40,14 @@ switch (filter('op')) { break; // Abilita utente - case 'enable': + case 'enable_user': if ($dbo->query('UPDATE zz_users SET enabled=1 WHERE id='.prepare($id_utente))) { flash()->info(tr('Utente abilitato!')); } break; // Disabilita utente - case 'disable': + case 'disable_user': if ($dbo->query('UPDATE zz_users SET enabled=0 WHERE id='.prepare($id_utente))) { flash()->info(tr('Utente disabilitato!')); } @@ -126,7 +126,7 @@ switch (filter('op')) { flash()->info(tr('Utente eliminato!')); if ($dbo->query('UPDATE zz_tokens SET enabled = 0 WHERE id_utente = '.prepare($id_utente))) { - flash()->info(tr('Token disabilitato!')); + flash()->info(tr('Token eliminato!')); } } break; @@ -134,13 +134,24 @@ switch (filter('op')) { // Abilita API utente case 'token_enable': $utente = User::find($id_utente); - $tokens = $utente->getApiTokens(); - foreach ($tokens as $token) { - $dbo->query('UPDATE zz_tokens SET enabled = 1 WHERE id = '.prepare($token['id'])); + $already_token = $dbo->fetchOne('SELECT `id` FROM `zz_tokens` WHERE `id_utente` = '.prepare($id_utente))['id']; + + if (empty($already_token)){ + + //Quando richiamo getApiTokens, non trovando nessun token abilitato ne crea uno nuovo + $tokens = $utente->getApiTokens(); + + foreach ($tokens as $token) { + $dbo->query('UPDATE zz_tokens SET enabled = 1 WHERE id = '.prepare($token['id'])); + flash()->info(tr('Token creato!')); + } + + }else if ($dbo->query('UPDATE zz_tokens SET enabled = 1 WHERE id_utente = '.prepare($id_utente))) { + flash()->info(tr('Token abilitato!')); } - flash()->info(tr('Token abilitato!')); + break; // Disabilita API utente @@ -152,7 +163,7 @@ switch (filter('op')) { $dbo->query('UPDATE zz_tokens SET enabled = 0 WHERE id = '.prepare($token['id'])); } - flash()->info(tr('Token abilitato!')); + flash()->info(tr('Token disabilitato!')); break; // Elimina gruppo diff --git a/modules/utenti/edit.php b/modules/utenti/edit.php index e40d02560..39d78c787 100755 --- a/modules/utenti/edit.php +++ b/modules/utenti/edit.php @@ -71,55 +71,55 @@ if (!empty($utenti)) { // Disabilitazione utente, se diverso da id_utente #1 (admin) if ($utente['id'] == '1') { echo ' - - - '; +
+ +
'; } elseif ($utente['enabled'] == 1) { echo ' - - + + '; } else { echo ' - - + + '; } // Cambio password e nome utente echo ' - '; + '; // Disabilitazione token API, se diverso da id_utente #1 (admin) $token = $dbo->fetchOne('SELECT `enabled` FROM `zz_tokens` WHERE `id_utente` = '.prepare($utente['id']).'')['enabled']; - + if ($utente['id'] == '1') { echo ' - - - '; +
+ +
'; } elseif (!empty($token)) { echo ' - - + + '; } else { echo ' - - + + '; } // Eliminazione utente, se diverso da id_utente #1 (admin) if ($utente['id'] == '1') { echo ' - - - '; +
+ +
'; } else { echo ' - - + + '; } diff --git a/update/2_4_18.sql b/update/2_4_18.sql index 85709548d..4d1163a51 100644 --- a/update/2_4_18.sql +++ b/update/2_4_18.sql @@ -324,3 +324,6 @@ UPDATE `zz_modules` SET `options` = 'custom' WHERE `name` = 'Impostazioni'; -- Fix logica query Scadenzario UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `co_scadenziario`\r\n LEFT JOIN `co_documenti` ON `co_scadenziario`.`iddocumento` = `co_documenti`.`id`\r\n LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`\r\n LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id`\r\n LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`\r\n LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`\r\nWHERE 1=1 AND\r\n (`co_scadenziario`.`scadenza` BETWEEN \'|period_start|\' AND \'|period_end|\' OR ABS(`co_scadenziario`.`pagato`) < ABS(`co_scadenziario`.`da_pagare`)) AND\r\n (`co_statidocumento`.`descrizione` IS NULL OR `co_statidocumento`.`descrizione` IN(\'Emessa\',\'Parzialmente pagato\',\'Pagato\'))\r\nHAVING 2=2\r\nORDER BY `scadenza` ASC' WHERE `zz_modules`.`name` = 'Scadenzario'; + +-- Elimino token disabilitati +DELETE FROM `zz_tokens` WHERE `zz_tokens`.`enabled` = 0; \ No newline at end of file