<?php
// Función para verificar si el usuario es admin o designado por admin
function esAdminOAutorizado() {
    if (session_status() === PHP_SESSION_NONE) session_start();
    // Si no está logueado, redirigir
    if (!isset($_SESSION['user_id'])) {
        error_log('[admin_guard] Usuario no autenticado, redirigiendo a login');
        header('Location: ../../index.php');
        exit();
    }
    // Si es admin clásico o jornadaRocasa=1
    if (strtolower($_SESSION['user_attuid']) === 'admin' || (isset($_SESSION['is_admin']) && $_SESSION['is_admin'])) return true;
    // Si el puesto contiene 'gerente' o 'assistant' (sin distinción de mayúsculas/minúsculas)
    $puesto = strtolower($_SESSION['user_puesto'] ?? '');
    if (strpos($puesto, 'gerente') !== false || strpos($puesto, 'assistant') !== false) return true;
    // Si es designado por admin (puedes cambiar la lógica aquí)
    if (isset($_SESSION['user_es_admin_designado']) && $_SESSION['user_es_admin_designado'] === true) return true;
    // Si no es admin, gerente, assistant ni designado, redirigir al dashboard de usuario
    error_log('[admin_guard] Usuario ' . ($_SESSION['user_attuid'] ?? 'unknown') . ' no autorizado para admin, redirigiendo a dashboard.php');
    header('Location: ../dashboard/dashboard.php');
    exit();
}

// Llamar a la función de verificación
esAdminOAutorizado();
