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 { $err = 'Errore aggiornamento ruolo'; } } else { $err = 'Dati ruolo non validi'; } } elseif ($azione === 'crea_bibliotecario') { // Creazione nuovo account bibliotecario manuale $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'] ?? ''); $username = trim($_POST['username'] ?? ''); $password = trim($_POST['password'] ?? ''); $errors = []; if ($nome === '' || $cognome === '' || $luogo_nascita === '') $errors[] = 'Campi anagrafici obbligatori'; if ($data_nascita === '' || !preg_match('/^\d{4}-\d{2}-\d{2}$/', $data_nascita)) $errors[] = 'Data nascita non valida'; if ($cod_fiscale === '' || strlen($cod_fiscale) !== 16) $errors[] = 'Codice Fiscale non valido'; if ($telefono === '' || !preg_match('/^\d{6,10}$/', $telefono)) $errors[] = 'Telefono non valido'; if ($username === '' || strlen($username) < 3) $errors[] = 'Username troppo corto'; if ($password === '' || preg_match('/\s/', $password) || strlen($password) < 8 || !preg_match('/[a-z]/', $password) || !preg_match('/[A-Z]/', $password) || !preg_match('/[^a-zA-Z0-9]/', $password)) { $errors[] = 'Password non conforme ai requisiti'; } // Unicità username $username_e = mysqli_real_escape_string($conn, $username); $check = mysqli_query($conn, "SELECT user_id FROM `user` WHERE descrizione = '$username_e' LIMIT 1"); if ($check && mysqli_num_rows($check) > 0) $errors[] = 'Username già esistente'; if (!empty($errors)) { $err = 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)) { $err = '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)) { $err = 'Errore inserimento utente'; } else { $user_id = mysqli_insert_id($conn); $sql_perm = "INSERT INTO `permission` (user_id, role, data) VALUES ($user_id, 2, '$oggi')"; // bibliotecario if (!mysqli_query($conn, $sql_perm)) { $err = 'Errore assegnazione ruolo'; } else { $msg = 'Bibliotecario creato correttamente'; } } } } } } // Query elenco bibliotecari $sql_b = "SELECT u.user_id, u.descrizione AS username, p.nome, p.cognome, p.cod_fiscale, p.telefono FROM `user` u JOIN `person` p ON p.id_persona = u.person_id LEFT JOIN `permission` pm ON pm.user_id = u.user_id WHERE pm.role = 2 GROUP BY u.user_id, u.descrizione, p.nome, p.cognome, p.cod_fiscale, p.telefono"; $biblios = mysqli_query($conn, $sql_b); // Query elenco utenti con ultimo ruolo $sql_u = "SELECT u.user_id, u.descrizione AS username, COALESCE(r.name,'utente') AS ruolo FROM `user` u LEFT JOIN `permission` pm ON pm.user_id = u.user_id LEFT JOIN `role` r ON r.id = pm.role GROUP BY u.user_id ORDER BY u.user_id ASC"; $utenti = mysqli_query($conn, $sql_u); ?> Amministrazione | Bibliotecari

Gestione Bibliotecari

← Torna alla Home

Elenco Bibliotecari

0): ?>
ID Username Cognome/Nome Telefono
Nessun bibliotecario

Crea Bibliotecario

Credenziali

Utenti e Ruoli

0): ?>
ID Username Ruolo Azione
Nessun utente