<?php

require_once __DIR__ . '/../lib/init.php';
Auth::requireLogin();
Auth::requireRole('admin');

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    header('Location: settings.php');
    exit;
}

$userId = (int)($_POST['user_id'] ?? 0);
$role   = $_POST['role'] ?? '';

if ($userId && in_array($role, ['admin', 'tech', 'viewer'], true)) {
    // Interdire de se retirer le rôle admin à soi-même
    if ($userId === Auth::currentUserId() && $role !== 'admin') {
        $_SESSION['flash'] = ['type' => 'danger', 'message' => 'Vous ne pouvez pas retirer votre propre rôle admin.'];
        header('Location: settings.php');
        exit;
    }
    Auth::setRole($userId, $role);
    AuditLog::log('user.role', 'user', $userId, "Rôle → $role");
    $_SESSION['flash'] = ['type' => 'success', 'message' => 'Rôle mis à jour.'];
}

header('Location: settings.php');
exit;
