<?php
session_start();

// ===============================================
// BLOQUE 1: Verificación de Sesión y Rol (Seguridad)
// ===============================================

// 1. Verificar si el usuario ha iniciado sesión
if (!isset($_SESSION['autenticado']) || $_SESSION['autenticado'] !== true) {
    header('Location: login.php'); // Redirige si no está logueado
    exit;
}

// 2. Verificar que el rol sea 'admin'
if ($_SESSION['rol'] !== 'admin') {
    // Redirige o muestra un error si el rol no es admin
    echo "<h1>Acceso Denegado</h1><p>Solo los administradores pueden acceder a esta página.</p>";
    exit;
}

// ===============================================
// BLOQUE 2: Configuración y Conexión a la Base de Datos
// ===============================================

// *¡IMPORTANTE!* Asegúrate de que esta sea la contraseña correcta, sin puntos suspensivos.
$db_host = 'localhost';
$db_user = 'ssrlaagu_contactos';
$db_pass = 'Redhat2025...'; 
$db_name = 'ssrlaagu_contactos';

$db = new mysqli($db_host, $db_user, $db_pass, $db_name);
if ($db->connect_error) {
    die("Error de conexión: " . $db->connect_error);
}

// ===============================================
// BLOQUE 3: Lógica de Creación de Usuarios
// ===============================================

$mensaje = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['crear_usuario'])) {
    $nuevo_usuario = trim($_POST['nuevo_usuario'] ?? '');
    $nueva_password = $_POST['nueva_password'] ?? '';
    $nuevo_email = trim($_POST['nuevo_email'] ?? '');
    $nuevo_rol = $_POST['nuevo_rol'] ?? 'usuario'; // Rol por defecto

    // Validación básica
    if (empty($nuevo_usuario) || empty($nueva_password) || empty($nuevo_email)) {
        $mensaje = "<p style='color: red;'>Todos los campos son obligatorios.</p>";
    } else {
        // 1. Hashear la contraseña de forma segura (BCRYPT)
        $hash_password = password_hash($nueva_password, PASSWORD_BCRYPT);

        // 2. Insertar el nuevo usuario en la base de datos de forma segura
        $stmt = $db->prepare("INSERT INTO usuarios (usuario, password, email, rol) VALUES (?, ?, ?, ?)");
        
        // El tipo de parámetro para el rol y el email (VARCHAR) es 's' (string)
        $stmt->bind_param('ssss', $nuevo_usuario, $hash_password, $nuevo_email, $nuevo_rol);

        if ($stmt->execute()) {
            $mensaje = "<p style='color: green;'>✅ Usuario '" . htmlspecialchars($nuevo_usuario) . "' creado con éxito como " . $nuevo_rol . ".</p>";
        } else {
            // Error más específico para depuración
            // Si el nombre de usuario es UNIQUE, $db->errno será 1062
            if ($db->errno === 1062) { 
                $mensaje = "<p style='color: red;'>Error: El nombre de usuario '" . htmlspecialchars($nuevo_usuario) . "' ya existe.</p>";
            } else {
                $mensaje = "<p style='color: red;'>Error al crear el usuario. Código: " . $db->errno . "</p>";
            }
        }
        $stmt->close();
    }
}
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Gestión de Usuarios - Admin</title>
    <style>
        body { font-family: Arial, sans-serif; background: #f5faff; padding: 20px; }
        .container { max-width: 600px; margin: 0 auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.2); }
        input, select { width: 100%; padding: 8px; margin: 10px 0; border-radius: 5px; border: 1px solid #ccc; box-sizing: border-box; }
        button { background: #1976d2; color: white; border: none; padding: 10px; border-radius: 5px; cursor: pointer; width: 100%; font-weight: bold; margin-top: 10px; }
        .error { color: red; font-size: 0.9em; }
    </style>
</head>
<body>
    <div class="container">
        <h1>🛠️ Panel de Gestión de Usuarios</h1>
        <p>Bienvenido, Administrador (<?php echo htmlspecialchars($_SESSION['rol']); ?>). <a href="logout.php">Cerrar Sesión</a></p>
        
        <?php echo $mensaje; // Muestra el mensaje de éxito o error ?>
        
        <h2>Crear Nuevo Usuario</h2>
        <form method="post" action="gestor_usuarios.php">
            <input type="hidden" name="crear_usuario" value="1">
            
            <label for="nuevo_usuario">Nombre de Usuario:</label>
            <input type="text" id="nuevo_usuario" name="nuevo_usuario" required>

            <label for="nueva_password">Contraseña:</label>
            <input type="password" id="nueva_password" name="nueva_password" required>
            
            <label for="nuevo_email">Correo Electrónico:</label>
            <input type="email" id="nuevo_email" name="nuevo_email" required>

            <label for="nuevo_rol">Rol:</label>
            <select id="nuevo_rol" name="nuevo_rol">
                <option value="usuario">Usuario</option>
                <option value="director">Director</option>
                <option value="admin">Administrador</option>
            </select>

            <button type="submit">Crear Usuario</button>
        </form>
    </div>
</body>
</html>