<?php
/**
 * Test de connexion réelle avec bably
 */

// Démarrer la session
session_start();

// Inclure la configuration
require_once __DIR__ . '/config/config.php';
require_once __DIR__ . '/config/functions.php';

echo "<h2>🔐 Test de Connexion Réelle avec bably</h2>\n";

try {
    // Inclure le modèle User
    require_once __DIR__ . '/models/User.php';
    $userModel = new User();
    
    // Tenter la connexion avec bably
    $username = 'bably';
    $password = 'cuisinier123';
    
    echo "<p>Tentative de connexion avec:</p>\n";
    echo "<p>Nom d'utilisateur: $username</p>\n";
    echo "<p>Mot de passe: $password</p>\n";
    
    $result = $userModel->authenticate($username, $password);
    
    if ($result['success']) {
        echo "<p>✅ Connexion réussie !</p>\n";
        
        // Créer la session
        $_SESSION['user_id'] = $result['user']['id'];
        $_SESSION['username'] = $result['user']['username'];
        $_SESSION['user_role'] = $result['user']['role_name'];
        $_SESSION['user_permissions'] = $result['user']['permissions'];
        $_SESSION['user_name'] = $result['user']['first_name'] . ' ' . $result['user']['last_name'];
        $_SESSION['last_activity'] = time();
        
        echo "<p>Session créée avec succès</p>\n";
        echo "<p>ID utilisateur: {$_SESSION['user_id']}</p>\n";
        echo "<p>Nom d'utilisateur: {$_SESSION['username']}</p>\n";
        echo "<p>Rôle: {$_SESSION['user_role']}</p>\n";
        echo "<p>Permissions: " . implode(', ', $_SESSION['user_permissions']) . "</p>\n";
        
        // Tester les permissions
        echo "<h3>Test des permissions</h3>\n";
        echo "<p>restaurant.view: " . (hasPermission('restaurant.view') ? '✅ Oui' : '❌ Non') . "</p>\n";
        echo "<p>restaurant.edit: " . (hasPermission('restaurant.edit') ? '✅ Oui' : '❌ Non') . "</p>\n";
        echo "<p>inventory.view: " . (hasPermission('inventory.view') ? '✅ Oui' : '❌ Non') . "</p>\n";
        echo "<p>inventory.stock: " . (hasPermission('inventory.stock') ? '✅ Oui' : '❌ Non') . "</p>\n";
        echo "<p>users.view: " . (hasPermission('users.view') ? '✅ Oui' : '❌ Non') . "</p>\n";
        
        // Redirection vers le dashboard dynamique
        echo "<h3>Accès au dashboard dynamique</h3>\n";
        echo "<p><a href='dashboard_dynamic.php' class='btn btn-primary'>🔗 Accéder au dashboard dynamique</a></p>\n";
        echo "<p><a href='dashboard.php' class='btn btn-secondary'>🔗 Accéder à l'ancien dashboard</a></p>\n";
        
    } else {
        echo "<p>❌ Échec de la connexion: {$result['message']}</p>\n";
        
        // Afficher les informations de debug
        echo "<h3>Debug des informations utilisateur</h3>\n";
        
        $sql = "SELECT u.id, u.username, u.role_id, r.name as role_name, r.permissions FROM users u LEFT JOIN roles r ON u.role_id = r.id WHERE u.username = ?";
        $database = new Database();
        $conn = $database->getConnection();
        $stmt = $conn->prepare($sql);
        $stmt->execute([$username]);
        $user = $stmt->fetch();
        
        if ($user) {
            echo "<p>Utilisateur trouvé dans la base de données:</p>\n";
            echo "<p>ID: {$user['id']}</p>\n";
            echo "<p>Username: {$user['username']}</p>\n";
            echo "<p>Role ID: {$user['role_id']}</p>\n";
            echo "<p>Role Name: {$user['role_name']}</p>\n";
            echo "<p>Permissions: {$user['permissions']}</p>\n";
        } else {
            echo "<p>❌ Utilisateur non trouvé dans la base de données</p>\n";
        }
    }
    
} catch (Exception $e) {
    echo "<p>❌ Erreur: " . $e->getMessage() . "</p>\n";
    echo "<p>Stack trace: " . $e->getTraceAsString() . "</p>\n";
}
?>



