diff --git a/src/admin/manageUsers.php b/src/admin/manageUsers.php new file mode 100644 index 0000000..a3cd7af --- /dev/null +++ b/src/admin/manageUsers.php @@ -0,0 +1,178 @@ +prepare($sql_role); +$stmt_role->bind_param("i", $user_id); +$stmt_role->execute(); +$stmt_role->bind_result($role); +$stmt_role->fetch(); +$stmt_role->close(); + +if ($role !== 'admin') { + http_response_code(403); + die("Accesso negato. Solo gli amministratori possono accedere a questa sezione."); +} + +// Gestisci azioni (reset password, cambio ruolo, eliminazione) +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $action = $_POST['action'] ?? ''; + $user_id = $_POST['user_id'] ?? 0; + + if ($action === 'reset_password') { + // Genera una password temporanea + $temp_password = bin2hex(random_bytes(4)); + $hashed_password = password_hash($temp_password, PASSWORD_DEFAULT); + + $sql_reset = "UPDATE Users SET Password = ? WHERE UserID = ?"; + $stmt_reset = $conn->prepare($sql_reset); + $stmt_reset->bind_param("si", $hashed_password, $user_id); + $stmt_reset->execute(); + $stmt_reset->close(); + + $reset_message = "Password temporanea generata: " . htmlspecialchars($temp_password); + } elseif ($action === 'update_role') { + $new_role = $_POST['role'] ?? ''; + if (in_array($new_role, ['user', 'admin'])) { + $sql_update = "UPDATE Users SET Role = ? WHERE UserID = ?"; + $stmt_update = $conn->prepare($sql_update); + $stmt_update->bind_param("si", $new_role, $user_id); + $stmt_update->execute(); + $stmt_update->close(); + } + } elseif ($action === 'delete_user') { + // Elimina gli ordini dell'utente prima di eliminare l'utente + $sql_delete_orders = "DELETE FROM Orders WHERE UserID = ?"; + $stmt_delete_orders = $conn->prepare($sql_delete_orders); + $stmt_delete_orders->bind_param("i", $user_id); + $stmt_delete_orders->execute(); + $stmt_delete_orders->close(); + + // Elimina l'utente + $sql_delete = "DELETE FROM Users WHERE UserID = ?"; + $stmt_delete = $conn->prepare($sql_delete); + $stmt_delete->bind_param("i", $user_id); + $stmt_delete->execute(); + $stmt_delete->close(); + } +} + +// Query per ottenere tutti gli utenti +$sql = "SELECT UserID, Name, Surname, Email, Role FROM Users ORDER BY UserID DESC"; +$result = $conn->query($sql); + +if ($result === false) { + die("Errore nella query: " . $conn->error); +} +?> + + + + + + + Dashboard amministratore - TechStore + + + + +
+ +
+ + + + Benvenuto, + + + +
+
+ + +
+
+ +
+
+

Gestione Utenti

+ + +
+ +
+ + + num_rows > 0): ?> + + + + + + + + + + + + + fetch_assoc()): ?> + + + + + + + + + + +
IDNomeCognomeEmailRuoloAzioni
# +
+ + + +
+
+
+ + + +
+
+ + + +
+
+ +

Nessun utente trovato.

+ +
+
+ + + + + close(); ?> + + diff --git a/src/assets/style.css b/src/assets/style.css index 4b3d3e5..1121585 100644 --- a/src/assets/style.css +++ b/src/assets/style.css @@ -385,4 +385,36 @@ form button:hover { display: contents; margin: 0; padding: 0; -} \ No newline at end of file +} + +/* Stili per role-select */ +.role-select { + border: 1px solid #ddd; + border-radius: 4px; + cursor: pointer; +} + +.role-select.role-user { + background-color: #e7f3ff; + color: #004085; +} + +.role-select.role-admin { + background-color: #fff3cd; + color: #856404; +} + +/* Stili per btn-reset */ +.btn-reset { + background-color: #17a2b8; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; + font-size: 12px; + margin-right: 5px; +} + +.btn-reset:hover { + background-color: #138496; +}