Todos los campos son obligatorios.'; } else { try { $db = db(); // Check if username already exists $stmt = $db->prepare("SELECT id FROM users WHERE username = :username"); $stmt->bindParam(':username', $username); $stmt->execute(); if ($stmt->rowCount() > 0) { $_SESSION['message'] = '
El nombre de usuario ya existe.
'; } else { $hashed_password = password_hash($password, PASSWORD_DEFAULT); $stmt = $db->prepare("INSERT INTO users (username, password, role, nombre_asesor) VALUES (:username, :password, :role, :nombre_asesor)"); $stmt->bindParam(':username', $username); $stmt->bindParam(':password', $hashed_password); $stmt->bindParam(':role', $role); $stmt->bindParam(':nombre_asesor', $nombre_asesor); if ($stmt->execute()) { $_SESSION['message'] = '
Usuario creado con éxito.
'; } else { $_SESSION['message'] = '
Error al crear el usuario.
'; } } } catch (PDOException $e) { $_SESSION['message'] = '
Error de base de datos: ' . $e->getMessage() . '
'; } } header('Location: manage_users.php'); exit; } // Handle form submission for updating a user if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['update_user'])) { $user_id = $_POST['user_id']; $username = trim($_POST['username']); $password = $_POST['password']; $role = $_POST['role']; $nombre_asesor = trim($_POST['nombre_asesor']); if (empty($user_id) || empty($username) || empty($role)) { $message = '
Error: Faltan datos para actualizar.
'; } else { try { $db = db(); // Check if username already exists for another user $stmt = $db->prepare("SELECT id FROM users WHERE username = :username AND id != :id"); $stmt->bindParam(':username', $username); $stmt->bindParam(':id', $user_id); $stmt->execute(); if ($stmt->rowCount() > 0) { $message = '
El nombre de usuario ya está en uso por otro usuario.
'; } else { $sql = "UPDATE users SET username = :username, role = :role, nombre_asesor = :nombre_asesor"; $params = [ ':username' => $username, ':role' => $role, ':nombre_asesor' => $nombre_asesor, ':id' => $user_id ]; if (!empty($password)) { $hashed_password = password_hash($password, PASSWORD_DEFAULT); $sql .= ", password = :password"; $params[':password'] = $hashed_password; } $sql .= " WHERE id = :id"; $stmt = $db->prepare($sql); if ($stmt->execute($params)) { $_SESSION['message'] = '
Usuario actualizado con éxito.
'; } else { $_SESSION['message'] = '
Error al actualizar el usuario.
'; } header('Location: manage_users.php'); exit; } } catch (PDOException $e) { $message = '
Error de base de datos: ' . $e->getMessage() . '
'; } } } // Fetch all users to display in a list try { $db = db(); $users_stmt = $db->query("SELECT id, username, role, nombre_asesor FROM users ORDER BY username ASC"); $users = $users_stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { $users = []; $message .= '
Error al cargar la lista de usuarios.
'; } $pageTitle = "Gestionar Usuarios"; include 'layout_header.php'; ?>

Crear Nuevo Usuario

👁️

Usuarios Existentes

Nombre de Usuario Nombre del Asesor Rol Acciones
Eliminar