<?php
require_once 'verificar_permissao.php';
verificarPermissao('admin');
session_start();
require_once 'conexao.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Verifica tenant_id da sessão
    if (!isset($_SESSION['tenant_id'])) {
        $_SESSION['mensagem'] = "Tenant não identificado.";
        header('Location: gerenciar_usuarios.php');
        exit;
    }
    $tenantId = (int) $_SESSION['tenant_id'];

    $id = intval($_POST['id']);
    $permissao = $_POST['permissao'];

    // Verifica se o usuário pertence ao tenant do admin que está alterando
    $stmtVerifica = $conn->prepare("SELECT id FROM usuarios WHERE id = ? AND tenant_id = ?");
    $stmtVerifica->bind_param("ii", $id, $tenantId);
    $stmtVerifica->execute();
    $result = $stmtVerifica->get_result();
    if ($result->num_rows === 0) {
        $_SESSION['mensagem'] = "Usuário não encontrado ou acesso negado.";
        header('Location: gerenciar_usuarios.php');
        exit;
    }
    $stmtVerifica->close();

    // Atualiza permissão
    $stmt = $conn->prepare("UPDATE usuarios SET permissao = ? WHERE id = ? AND tenant_id = ?");
    $stmt->bind_param("sii", $permissao, $id, $tenantId);

    if ($stmt->execute()) {
        $_SESSION['mensagem'] = "Permissão atualizada com sucesso!";
    } else {
        $_SESSION['mensagem'] = "Erro ao atualizar permissão: " . $stmt->error;
    }

    $stmt->close();
    $conn->close();

    header('Location: gerenciar_usuarios.php');
    exit;
}
