<?php
/**
 * Página para ver enlaces de recuperación de contraseña
 * Requiere autenticación de administrador
 */

session_start();

// Verificar si el usuario está autenticado
if (!isset($_SESSION['user'])) {
    header("Location: index.php");
    exit();
}

// Verificar si es super usuario o tiene permisos de administración
$tieneAccesoSuperUsuario = false;
try {
    include_once 'config/database.php';
    $database = new Database();
    $conn = $database->getConnection();
    
    $stmt = $conn->prepare("SELECT COUNT(*) FROM templeadomodulo 
                           WHERE codempleado = ? AND codmodulos = 3");
    $stmt->execute([$_SESSION['user']['codempleado']]);
    $tieneAccesoSuperUsuario = $stmt->fetchColumn() > 0;
} catch(PDOException $e) {
    $tieneAccesoSuperUsuario = false;
}

if (!$tieneAccesoSuperUsuario) {
    header("Location: dashboard.php");
    exit();
}

// Leer el archivo de log
$logFile = __DIR__ . '/actions/password_reset_links.log';
$links = [];

if (file_exists($logFile)) {
    $content = file_get_contents($logFile);
    $lines = explode("\n", $content);
    
    // Leer las últimas 50 líneas (más recientes)
    $lines = array_filter($lines);
    $lines = array_slice($lines, -50);
    
    foreach ($lines as $line) {
        if (empty(trim($line))) continue;
        
        // Parsear la línea: "Fecha - Email: email, Link: link, Token: token"
        if (preg_match('/(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) - Email: ([^,]+), Link: ([^,]+), Token: (.+)/', $line, $matches)) {
            $links[] = [
                'fecha' => $matches[1],
                'email' => trim($matches[2]),
                'link' => trim($matches[3]),
                'token' => trim($matches[4])
            ];
        }
    }
    
    // Ordenar por fecha (más recientes primero)
    $links = array_reverse($links);
}

// También obtener de la base de datos
$dbLinks = [];
try {
    $stmt = $conn->prepare("
        SELECT prt.*, te.email, te.nombres, te.apellidoPaterno, te.apellidoMaterno
        FROM password_reset_tokens prt
        INNER JOIN templeado te ON prt.codempleado = te.codempleado
        WHERE prt.used = 0 AND prt.expires_at > NOW()
        ORDER BY prt.created_at DESC
        LIMIT 50
    ");
    $stmt->execute();
    $dbLinks = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    // Ignorar si la tabla no existe aún
}

?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Enlaces de Recuperación de Contraseña - SIGVEM</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
    <style>
        .link-item {
            background: #f8f9fa;
            padding: 15px;
            margin-bottom: 10px;
            border-radius: 5px;
            border-left: 4px solid #0d6efd;
        }
        .link-item.expired {
            border-left-color: #dc3545;
            opacity: 0.7;
        }
        .link-text {
            word-break: break-all;
            background: white;
            padding: 10px;
            border-radius: 3px;
            font-family: monospace;
            font-size: 0.9em;
        }
        .copy-btn {
            cursor: pointer;
        }
    </style>
</head>
<body>
    <?php include 'includes/header.php'; ?>
    
    <div class="container mt-4">
        <div class="row">
            <div class="col-12">
                <h2><i class="fas fa-key me-2"></i>Enlaces de Recuperación de Contraseña</h2>
                <p class="text-muted">Últimos enlaces generados para recuperación de contraseña</p>
                
                <div class="alert alert-info">
                    <i class="fas fa-info-circle me-2"></i>
                    <strong>Nota:</strong> Estos enlaces expiran después de 1 hora y solo pueden usarse una vez.
                </div>

                <?php if (empty($links) && empty($dbLinks)): ?>
                    <div class="alert alert-warning">
                        <i class="fas fa-exclamation-triangle me-2"></i>
                        No hay enlaces de recuperación disponibles.
                    </div>
                <?php else: ?>
                    
                    <?php if (!empty($dbLinks)): ?>
                        <h4 class="mt-4">Desde Base de Datos (Activos)</h4>
                        <?php foreach ($dbLinks as $item): ?>
                            <div class="link-item">
                                <div class="row">
                                    <div class="col-md-8">
                                        <strong><i class="fas fa-user me-2"></i>Empleado:</strong> 
                                        <?php echo htmlspecialchars(($item['nombres'] ?? '') . ' ' . ($item['apellidoPaterno'] ?? '') . ' ' . ($item['apellidoMaterno'] ?? '')); ?><br>
                                        <strong><i class="fas fa-envelope me-2"></i>Email:</strong> 
                                        <?php echo htmlspecialchars($item['email'] ?? 'N/A'); ?><br>
                                        <strong><i class="fas fa-calendar me-2"></i>Fecha:</strong> 
                                        <?php echo htmlspecialchars($item['created_at']); ?><br>
                                        <strong><i class="fas fa-clock me-2"></i>Expira:</strong> 
                                        <?php echo htmlspecialchars($item['expires_at']); ?><br>
                                        <strong><i class="fas fa-link me-2"></i>Enlace:</strong>
                                        <div class="link-text mt-2">
                                            <?php 
                                            $protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? "https" : "http";
                                            $host = $_SERVER['HTTP_HOST'];
                                            $basePath = dirname($_SERVER['SCRIPT_NAME']);
                                            $resetLink = $protocol . "://" . $host . $basePath . "/reset-password.php?token=" . $item['token'];
                                            echo htmlspecialchars($resetLink);
                                            ?>
                                        </div>
                                    </div>
                                    <div class="col-md-4 text-end">
                                        <button class="btn btn-sm btn-primary copy-btn" 
                                                data-link="<?php echo htmlspecialchars($resetLink); ?>">
                                            <i class="fas fa-copy me-1"></i> Copiar Enlace
                                        </button>
                                    </div>
                                </div>
                            </div>
                        <?php endforeach; ?>
                    <?php endif; ?>

                    <?php if (!empty($links)): ?>
                        <h4 class="mt-4">Desde Archivo de Log</h4>
                        <?php foreach ($links as $item): ?>
                            <div class="link-item">
                                <div class="row">
                                    <div class="col-md-8">
                                        <strong><i class="fas fa-envelope me-2"></i>Email:</strong> 
                                        <?php echo htmlspecialchars($item['email']); ?><br>
                                        <strong><i class="fas fa-calendar me-2"></i>Fecha:</strong> 
                                        <?php echo htmlspecialchars($item['fecha']); ?><br>
                                        <strong><i class="fas fa-link me-2"></i>Enlace:</strong>
                                        <div class="link-text mt-2">
                                            <?php echo htmlspecialchars($item['link']); ?>
                                        </div>
                                    </div>
                                    <div class="col-md-4 text-end">
                                        <button class="btn btn-sm btn-primary copy-btn" 
                                                data-link="<?php echo htmlspecialchars($item['link']); ?>">
                                            <i class="fas fa-copy me-1"></i> Copiar Enlace
                                        </button>
                                    </div>
                                </div>
                            </div>
                        <?php endforeach; ?>
                    <?php endif; ?>

                <?php endif; ?>

                <div class="mt-4">
                    <a href="dashboard.php" class="btn btn-secondary">
                        <i class="fas fa-arrow-left me-1"></i> Volver al Dashboard
                    </a>
                </div>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        // Función para copiar al portapapeles
        document.querySelectorAll('.copy-btn').forEach(btn => {
            btn.addEventListener('click', function() {
                const link = this.getAttribute('data-link');
                navigator.clipboard.writeText(link).then(() => {
                    const originalHTML = this.innerHTML;
                    this.innerHTML = '<i class="fas fa-check me-1"></i> Copiado!';
                    this.classList.remove('btn-primary');
                    this.classList.add('btn-success');
                    
                    setTimeout(() => {
                        this.innerHTML = originalHTML;
                        this.classList.remove('btn-success');
                        this.classList.add('btn-primary');
                    }, 2000);
                }).catch(err => {
                    alert('Error al copiar: ' + err);
                });
            });
        });
    </script>
</body>
</html>

