0) $errors[] = 'Username già esistente'; if (!empty($errors)) { $error = implode(' | ', $errors); } else { $nome_e = mysqli_real_escape_string($conn, $nome); $cognome_e = mysqli_real_escape_string($conn, $cognome); $data_nascita_e = mysqli_real_escape_string($conn, $data_nascita); $luogo_nascita_e = mysqli_real_escape_string($conn, $luogo_nascita); $cod_fiscale_e = mysqli_real_escape_string($conn, $cod_fiscale); $telefono_e = mysqli_real_escape_string($conn, $telefono); $password_e = mysqli_real_escape_string($conn, $password); $oggi = date('Y-m-d'); $sql_person = "INSERT INTO `person` (nome, cognome, data_nascita, luogo_nascita, cod_fiscale, telefono) VALUES ('$nome_e', '$cognome_e', '$data_nascita_e', '$luogo_nascita_e', '$cod_fiscale_e', '$telefono_e')"; if (!mysqli_query($conn, $sql_person)) { $error = 'Errore inserimento persona'; } else { $person_id = mysqli_insert_id($conn); $sql_user = "INSERT INTO `user` (descrizione, data, person_id, password) VALUES ('$username_e', '$oggi', $person_id, '$password_e')"; if (!mysqli_query($conn, $sql_user)) { $error = 'Errore inserimento utente'; } else { $user_id = mysqli_insert_id($conn); $sql_perm = "INSERT INTO `permission` (user_id, role, data) VALUES ($user_id, $role_id, '$oggi')"; if (!mysqli_query($conn, $sql_perm)) { $error = 'Errore assegnazione ruolo'; } else { $msg = 'Utente creato correttamente'; } } } } } elseif ($azione === 'update_user') { $user_id = (int)($_POST['user_id'] ?? 0); $username = trim($_POST['username'] ?? ''); $password = trim($_POST['password'] ?? ''); // opzionale $nome = trim($_POST['nome'] ?? ''); $cognome = trim($_POST['cognome'] ?? ''); $data_nascita = trim($_POST['data_nascita'] ?? ''); $luogo_nascita = trim($_POST['luogo_nascita'] ?? ''); $cod_fiscale = strtoupper(trim($_POST['cod_fiscale'] ?? '')); $telefono = preg_replace('/\D+/', '', $_POST['telefono'] ?? ''); if ($user_id <= 0) { $error = 'ID utente non valido'; } else { $username_e = mysqli_real_escape_string($conn, $username); $nome_e = mysqli_real_escape_string($conn, $nome); $cognome_e = mysqli_real_escape_string($conn, $cognome); $data_nascita_e = mysqli_real_escape_string($conn, $data_nascita); $luogo_nascita_e = mysqli_real_escape_string($conn, $luogo_nascita); $cod_fiscale_e = mysqli_real_escape_string($conn, $cod_fiscale); $telefono_e = mysqli_real_escape_string($conn, $telefono); // Trova person_id $res = mysqli_query($conn, "SELECT person_id FROM `user` WHERE user_id = $user_id"); if ($res && mysqli_num_rows($res) === 1) { $pi = (int)mysqli_fetch_assoc($res)['person_id']; // Update person $ok1 = mysqli_query($conn, "UPDATE `person` SET nome='$nome_e', cognome='$cognome_e', data_nascita='$data_nascita_e', luogo_nascita='$luogo_nascita_e', cod_fiscale='$cod_fiscale_e', telefono='$telefono_e' WHERE id_persona=$pi"); // Update username $ok2 = mysqli_query($conn, "UPDATE `user` SET descrizione='$username_e' WHERE user_id=$user_id"); // Update password se valorizzata e conforme $ok3 = true; if ($password !== '') { if (preg_match('/\s/', $password) || strlen($password) < 8 || !preg_match('/[a-z]/', $password) || !preg_match('/[A-Z]/', $password) || !preg_match('/[^a-zA-Z0-9]/', $password)) { $ok3 = false; $error = 'Password non conforme ai requisiti'; } else { $password_e = mysqli_real_escape_string($conn, $password); $ok3 = mysqli_query($conn, "UPDATE `user` SET password='$password_e' WHERE user_id=$user_id"); } } if ($ok1 && $ok2 && $ok3) { $msg = 'Utente aggiornato'; } else if (!$error) { $error = 'Errore aggiornamento utente'; } } else { $error = 'Utente non trovato'; } } } elseif ($azione === 'delete_user') { $user_id = (int)($_POST['user_id'] ?? 0); if ($user_id <= 0) { $error = 'ID utente non valido'; } else { // Rimuove permission, poi utente e infine person $res = mysqli_query($conn, "SELECT person_id FROM `user` WHERE user_id = $user_id"); if ($res && mysqli_num_rows($res) === 1) { $pi = (int)mysqli_fetch_assoc($res)['person_id']; mysqli_query($conn, "DELETE FROM `permission` WHERE user_id = $user_id"); $okU = mysqli_query($conn, "DELETE FROM `user` WHERE user_id = $user_id"); $okP = false; if ($okU) { $okP = mysqli_query($conn, "DELETE FROM `person` WHERE id_persona = $pi"); } if ($okU && $okP) { $msg = 'Utente eliminato'; } else { $error = 'Errore eliminazione utente'; } } else { $error = 'Utente non trovato'; } } } elseif ($azione === 'set_ruolo') { $userId = (int)($_POST['user_id'] ?? 0); $roleId = (int)($_POST['role_id'] ?? 0); if ($userId > 0 && in_array($roleId, [2,3], true)) { $oggi = date('Y-m-d'); $sql = "INSERT INTO `permission` (user_id, role, data) VALUES ($userId, $roleId, '$oggi')"; if (mysqli_query($conn, $sql)) { $msg = 'Ruolo aggiornato'; } else { $error = 'Errore aggiornamento ruolo'; } } else { $error = 'Dati ruolo non validi'; } } } // Query utenti con persona e ultimo ruolo assegnato $sql = "SELECT u.user_id, u.descrizione AS username, u.data AS registrato_il, p.nome, p.cognome, p.cod_fiscale, p.telefono, COALESCE(r.name, 'utente') AS role_name FROM `user` u JOIN `person` p ON p.id_persona = u.person_id LEFT JOIN `permission` pm ON pm.user_id = u.user_id AND pm.data = (SELECT MAX(pm2.data) FROM `permission` pm2 WHERE pm2.user_id = u.user_id) LEFT JOIN `role` r ON r.id = pm.role ORDER BY u.user_id ASC"; $result = mysqli_query($conn, $sql); if (!$result) { $error = mysqli_error($conn); } // Se editing $editId = isset($_GET['edit_id']) ? (int)$_GET['edit_id'] : 0; $editUser = null; if ($editId > 0) { $resE = mysqli_query($conn, "SELECT u.user_id, u.descrizione AS username, u.data, u.person_id, p.nome, p.cognome, p.data_nascita, p.luogo_nascita, p.cod_fiscale, p.telefono FROM `user` u JOIN `person` p ON p.id_persona = u.person_id WHERE u.user_id = $editId LIMIT 1"); if ($resE && mysqli_num_rows($resE) === 1) { $editUser = mysqli_fetch_assoc($resE); } } ?> Amministrazione | Utenti

Utenti Registrati

← Torna alla Home
Errore DB:

Crea Utente / Bibliotecario

Credenziali

Modifica Utente #

Credenziali

Annulla
0): ?>
ID Username Ruolo Registrato il Nome Cognome Cod. Fiscale Telefono Azioni
Modifica
Nessun utente trovato