fetchNum('SELECT nome FROM zz_groups WHERE nome='.prepare($nome)) == 0) { $dbo->query('INSERT INTO zz_groups( nome, editable ) VALUES('.prepare($nome).', 1)'); flash()->info(tr('Gruppo aggiunto!')); $id_record = $dbo->lastInsertedID(); } else { flash()->error(tr('Gruppo già esistente!')); } break; // Abilita utente case 'enable': if ($dbo->query('UPDATE zz_users SET enabled=1 WHERE id='.prepare($id_utente))) { flash()->info(tr('Utente abilitato!')); } break; // Disabilita utente case 'disable': if ($dbo->query('UPDATE zz_users SET enabled=0 WHERE id='.prepare($id_utente))) { flash()->info(tr('Utente disabilitato!')); } break; // Cambio di password e username dell'utente case 'update_user': $username = filter('username'); $email = filter('email'); $password = filter('password'); $id_utente = filter('id_utente'); if (!empty($id_utente)) { $utente = User::find($id_utente); $utente->username = $username; $utente->email = $email; $cambia_password = filter('change_password'); if (!empty($cambia_password)) $utente->password = $password; } else { $utente = User::build($username, $email, $password); } // Foto if (!empty($_FILES['photo']['tmp_name'])) { $utente->photo = $_FILES['photo']; } // Anagrafica $id_anagrafica = filter('idanag'); $utente->id_anagrafica = $id_anagrafica; $utente->save(); $dbo->query('DELETE FROM zz_user_sedi WHERE id_user = '.prepare($id_utente)); foreach (post('idsede') as $i => $idsede) { $dbo->query('INSERT INTO `zz_user_sedi` (`id_user`,`idsede`) VALUES ('.prepare($id_utente).', '.prepare($idsede).')'); } break; // Aggiunta di un nuovo utente case 'self_update': $password = filter('password'); $utente = Auth::user(); if (!empty($password)) { $utente->password = $password; } elseif (!empty($_FILES['photo']['tmp_name'])) { $utente->photo = $_FILES['photo']; } $utente->save(); redirect(ROOTDIR.'/modules/utenti/info.php'); break; // Elimina utente case 'delete_user': if ($dbo->query('DELETE FROM zz_users WHERE id='.prepare($id_utente))) { flash()->info(tr('Utente eliminato!')); } break; // Abilita API utente case 'token_enable': if ($dbo->query('UPDATE zz_tokens SET enabled = 1 WHERE id_utente = '.prepare($id_utente))) { flash()->info(tr('Token abilitato!')); } break; // Disabilita API utente case 'token_disable': if ($dbo->query('UPDATE zz_tokens SET enabled = 0 WHERE id_utente = '.prepare($id_utente))) { flash()->info(tr('Token disabilitato!')); } break; // Elimina gruppo case 'deletegroup': // Verifico se questo gruppo si può eliminare $query = 'SELECT editable FROM zz_groups WHERE id='.prepare($id_record); $rs = $dbo->fetchArray($query); if ($rs[0]['editable'] == 1) { if ($dbo->query('DELETE FROM zz_groups WHERE id='.prepare($id_record))) { $dbo->query('DELETE FROM zz_users WHERE idgruppo='.prepare($id_record)); $dbo->query('DELETE FROM zz_permissions WHERE idgruppo='.prepare($id_record)); flash()->info(tr('Gruppo eliminato!')); } } else { flash()->error(tr('Questo gruppo non si può eliminare!')); } break; // Impostazione/reimpostazione dei permessi di accesso di default case 'restore_permission': //Gruppo Tecnici if ($dbo->fetchArray('SELECT `nome` FROM `zz_groups` WHERE `id` = '.prepare($id_record))[0]['nome'] == 'Tecnici') { $permessi = []; $permessi['Dashboard'] = 'rw'; $permessi['Anagrafiche'] = 'rw'; $permessi['Interventi'] = 'rw'; $permessi['Magazzino'] = 'rw'; $permessi['Articoli'] = 'rw'; $dbo->query('DELETE FROM zz_permissions WHERE idgruppo='.prepare($id_record)); foreach ($permessi as $module_name => $permesso) { $module_id = $dbo->fetchArray('SELECT `id` FROM `zz_modules` WHERE `name` = "'.$module_name.'"')[0]['id']; $dbo->insert('zz_permissions', [ 'idgruppo' => $id_record, 'idmodule' => $module_id, 'permessi' => $permesso, ]); } flash()->info(tr('Permessi reimpostati')); } break; // Aggiornamento dei permessi di accesso case 'update_permission': $permessi = filter('permesso'); $idmodulo = filter('idmodulo'); // Verifico che ci sia il permesso per questo gruppo if ($permessi != '-') { $rs = $dbo->fetchArray('SELECT * FROM zz_permissions WHERE idgruppo='.prepare($id_record).' AND idmodule='.prepare($idmodulo)); if (empty($rs)) { $query = 'INSERT INTO zz_permissions(idgruppo, idmodule, permessi) VALUES('.prepare($id_record).', '.prepare($idmodulo).', '.prepare($permessi).')'; } else { $query = 'UPDATE zz_permissions SET permessi='.prepare($permessi).' WHERE id='.prepare($rs[0]['id']); } // Aggiunta dei permessi relativi alle viste $count = $dbo->fetchNum('SELECT * FROM `zz_group_view` WHERE `id_gruppo` = '.prepare($id_record).' AND `id_vista` IN (SELECT `id` FROM `zz_views` WHERE `id_module`='.prepare($idmodulo).')'); if (empty($count)) { $results = $dbo->fetchArray('SELECT `id_vista` FROM `zz_group_view` WHERE `id_vista` IN (SELECT `id` FROM `zz_views` WHERE `id_module`='.prepare($idmodulo).')'); foreach ($results as $result) { $dbo->attach('zz_group_view', ['id_vista' => $result['id_vista']], ['id_gruppo' => $id_record]); } } } else { $query = 'DELETE FROM zz_permissions WHERE idgruppo='.prepare($id_record).' AND idmodule='.prepare($idmodulo); } $dbo->query($query); ob_end_clean(); echo 'ok'; break; }