gest366/modules/utenti/actions.php

164 lines
5.6 KiB
PHP

<?php
include_once(__DIR__."/../../core.php");
$id_utente = filter('idutente');
$operation = filter("op");
$username=filter('username');
$query = "SELECT idutente FROM zz_utenti WHERE username='" . $username . "'";
$rs = $dbo->fetchArray($query);
$id_utente = $rs[0]['idutente'];
if (isset($operation)) {
if ($modules_info[$module_name]["permessi"] == 'rw') {
// Aggiornamento permessi
if ($operation == 'update_permission') {
$permessi = filter('permesso');
$idmodulo = filter('idmodulo');
// Verifico che ci sia il permesso per questo gruppo
$rs = $dbo->fetchArray("SELECT * FROM zz_permessi WHERE idgruppo='" . $id_record . "' AND idmodule='" . $idmodulo . "'");
if (sizeof($rs) == 0) $query = "INSERT INTO zz_permessi(idgruppo, idmodule, permessi) VALUES(\"" . $id_record . "\", \"" . $idmodulo . "\", \"" . $permessi . "\")";
else $query = "UPDATE zz_permessi SET permessi=\"" . $permessi . "\" WHERE id='" . $rs[0]['id'] . "'";
$dbo->query($query);
ob_end_clean();
echo "ok";
exit();
}
// Abilita utente
else if ($operation == 'enable') {
if ($dbo->query("UPDATE zz_utenti SET enabled=1 WHERE idutente='" . $id_utente . "'")) array_push($_SESSION['infos'], "Utente abilitato!");
}
// Disabilita utente
else if ($operation == 'disable') {
if ($dbo->query("UPDATE zz_utenti SET enabled=0 WHERE idutente='" . $id_utente . "'")) array_push($_SESSION['infos'], "Utente disabilitato!");
}
// Cambio password e nome utente
else if ($operation == 'change_pwd' && isset($id_utente)) {
// $id_utente = filter('idutente');
$min_length = filter('min_length');
$min_length_username = filter('min_length_username');
$password = filter('password1');
$username = filter('username');
// Verifico che la password sia di almeno x caratteri
if (strlen($password) >= $min_length) {
if ($dbo->query("UPDATE zz_utenti SET password=MD5('" . $password . "') WHERE idutente='" . $id_utente . "'")) array_push($_SESSION['infos'], "Password aggiornata!");
$query_mobile="UPDATE zz_utenti SET chiave_mobile=MD5(CONCAT('".$username."', MD5('".$password."'))) WHERE idutente='".$id_utente."'";
$dbo->query($query_mobile);
}
else {
array_push($_SESSION['errors'], "La password deve essere lunga almeno " . $min_length . " caratteri!");
}
// Se ho modificato l'username, verifico che questo non sia già stato usato
$query = "SELECT username FROM zz_utenti WHERE idutente='" . $id_utente . "'";
$rs = $dbo->fetchArray($query);
if ($rs[0]['username'] != $username) {
$query = "SELECT idutente FROM zz_utenti WHERE username=\"" . $username . "\"";
$n = $dbo->fetchNum($query);
if ($n == 0) {
if ($dbo->query("UPDATE zz_utenti SET username=('" . $username . "') WHERE idutente='" . $id_utente . "'")) array_push($_SESSION['infos'], "Username aggiornato!");
}
else {
array_push($_SESSION['errors'], "Utente già esistente!");
}
}
}
// Aggiunta nuovo utente
else if ($operation == 'adduser' && isset($_POST['username'])) {
$username = filter('username');
$min_length = filter('min_length');
$min_length_username = filter('min_length_username');
$password = filter('password1');
$idanag = explode('-', filter('idanag'));
if (sizeof($idanag) == 2) {
$idtipoanagrafica = $idanag[0];
$idanagrafica = $idanag[1];
}
// Verifico che questo username non sia già stato usato
$query = "SELECT username FROM zz_utenti WHERE username=\"" . $username . "\"";
$n = $dbo->fetchNum($query);
if ($n == 0) {
// Verifico che la password sia di almeno x caratteri
if (strlen($password) >= $min_length) {
if ($dbo->query("INSERT INTO zz_utenti( idgruppo, username, password, idanagrafica, idtipoanagrafica, enabled, email) VALUES( \"" . $id_record . "\", \"" . $username . "\", MD5(\"" . $password . "\"), '" . $idanagrafica . "', '" . $idtipoanagrafica . "', 1, '' )")) array_push($_SESSION['infos'], "Utente aggiunto!");
}
else {
array_push($_SESSION['errors'], "La password deve essere lunga almeno " . $min_length . " caratteri!");
}
}
else {
array_push($_SESSION['errors'], "Utente già esistente!");
}
}
// Aggiunta nuovo gruppo
else if ($operation == 'add' && isset($_POST['nome'])) {
$nome = filter('nome');
// Verifico che questo username non sia già stato usato
if ($dbo->fetchNum("SELECT nome FROM zz_gruppi WHERE nome=\"" . $nome . "\"") == 0) {
$dbo->query("INSERT INTO zz_gruppi( nome, editable ) VALUES( \"" . $nome . "\", 1 )");
array_push($_SESSION['infos'], "Gruppo aggiunto!");
$id_record = $dbo->last_inserted_id();
}
else {
array_push($_SESSION['errors'], "Gruppo già esistente!");
}
}
// Elimina utente
else if ($operation == 'delete') {
$id_utente = filter('idutente');
if ($dbo->query("DELETE FROM zz_utenti WHERE idutente='" . $id_utente . "'")) array_push($_SESSION['infos'], "Utente eliminato!");
}
// Elimina gruppo
else if ($operation == 'deletegroup') {
// Verifico se questo gruppo si può eliminare
$query = "SELECT editable FROM zz_gruppi WHERE id='" . $id_record . "'";
$rs = $dbo->fetchArray($query);
if ($rs[0]['editable'] == 1) {
if ($dbo->query("DELETE FROM zz_gruppi WHERE id='" . $id_record . "'")) {
$dbo->query("DELETE FROM zz_utenti WHERE idgruppo='" . $id_record . "'");
$dbo->query("DELETE FROM zz_permessi WHERE idgruppo='" . $id_record . "'");
array_push($_SESSION['infos'], "Gruppo eliminato!");
}
}
else {
array_push($_SESSION['errors'], "Questo gruppo non si può eliminare!");
}
redirect($rootdir . '/controller.php?id_module=' . $modules_info["Utenti e permessi"]["id"]);
}
}
}
?>