<?php
// inc/admin_auth.php
require_once __DIR__ . '/functions.php';

function requireAdmin() {
    if (!isLoggedIn()) {
        if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
            header('Content-Type: application/json');
            echo json_encode(['success' => false, 'message' => 'Сессия истекла']);
            exit;
        } else {
            header('Location: /index.php');
            exit;
        }
    }
    $user = getUserById($_SESSION['user_id']);
    if ($user['role'] !== 'admin') {
        if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
            header('Content-Type: application/json');
            echo json_encode(['success' => false, 'message' => 'Недостаточно прав']);
            exit;
        } else {
            die('Доступ запрещён. Только для администраторов.');
        }
    }
}

function requireModerator() {
    if (!isLoggedIn()) {
        header('Location: /index.php');
        exit;
    }
    $user = getUserById($_SESSION['user_id']);
    if (!in_array($user['role'], ['admin', 'moderator'])) {
        die('Доступ запрещён. Требуется модератор или админ.');
    }
}