<?php

ini_set('display_errors', 1);
// Connexion à la base de données (adaptez selon votre projet)
require_once  './config/connexion.php'; // Ce fichier doit définir $conn (mysqli ou PDO)
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

include 'includes/title.php';
// Vérifier que l'utilisateur est connecté (accepte user_email OU user_name)
if (empty($_SESSION['user_email']) && empty($_SESSION['user_name'])) {
    header('Location: login.php');
    exit;
}

// Si la base de données de l'entreprise n'est pas disponible, rediriger vers login
if (empty($COMPANY_DB_AVAILABLE) || !($conn instanceof mysqli)) {
    header('Location: login.php');
    exit;
}

// Vérifier le statut de l'utilisateur
if (isset($_SESSION['status']) && $_SESSION['status'] == 0) {
    header('Location: status_inactif.php');
    exit;
}

// Forcer changement mot de passe (première connexion) sauf sur pages autorisées
$page = basename($_SERVER['SCRIPT_NAME']);
if (!in_array($page, ['change_password.php','logout.php']) && !empty($_SESSION['must_change_password']) && (int)$_SESSION['must_change_password']===1) {
    header('Location: change_password.php?first=1');
    exit;
}
// (page déjà déterminée ci-dessus)
$user_email = $_SESSION['user_email'];
$user_role = $_SESSION['user_role'] ?? '';

// Vérifier si la page est déclarée publique (menu_items.access=1)
$isPublicPage = false;
if($conn instanceof mysqli){
    if($stmtPub = $conn->prepare('SELECT 1 FROM menu_items WHERE link=? AND access=1 LIMIT 1')){
        $stmtPub->bind_param('s',$page);
        if($stmtPub->execute()){
            $stmtPub->store_result();
            if($stmtPub->num_rows>0){ $isPublicPage=true; }
        }
        $stmtPub->close();
    }
}

// Accès total pour Super admin ou admin
if ($user_role === 'Super admin' || $user_role === 'admin' || $isPublicPage) {
    // Pas de vérification, accès à tout
} else {
    // Récupérer les pages autorisées depuis la base SQL
    $allowed_pages = [];
    if ($user_email !== 'guest' && ($conn instanceof mysqli)) {
        $stmt = $conn->prepare("SELECT page FROM user_permissions WHERE user_email = ?");
        if ($stmt) {
            $stmt->bind_param("s", $user_email);
            $stmt->execute();
            $result = $stmt->get_result();
            while ($row = $result->fetch_assoc()) {
                $allowed_pages[] = $row['page'];
            }
            $stmt->close();
        }
    }
    // Vérifier l'accès
    if ($user_email !== 'guest' && !in_array($page, $allowed_pages)) {
        header('Location: access_denied.php');
        exit;
    }
}
?>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">
    <link href="./data/123456/logo.png" rel="icon">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php echo $page_title ? htmlspecialchars($page_title) : 'Page Par Défaut'; ?></title>
    <link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/qrious/4.0.2/qrious.min.js"></script>
    <link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
    <link href="css/ruang-admin.min.css" rel="stylesheet">
    <link href="vendor/datatables/dataTables.bootstrap4.min.css" rel="stylesheet">
