<?php
// app/rbac.php
declare(strict_types=1);

require_once __DIR__ . '/db.php';
require_once __DIR__ . '/auth.php';

function allowed_student_ids(): array {
  $pdo = db();
  $uid = (int)$_SESSION['uid'];

  if (has_role('ALUMNO')) {
    $st = $pdo->prepare("SELECT estudiante_id FROM usuario_estudiante WHERE usuario_id = ?");
    $st->execute([$uid]);
    $row = $st->fetch();
    return $row ? [(int)$row['estudiante_id']] : [];
  }

  if (has_role('TUTOR')) {
    $st = $pdo->prepare("SELECT estudiante_id FROM tutor_estudiante WHERE usuario_id = ? AND activo = 1");
    $st->execute([$uid]);
    return array_map(fn($x) => (int)$x['estudiante_id'], $st->fetchAll());
  }

  // STAFF (ADMIN/DIRECTOR/SECRETARIA/DOCENTE): por ahora devolvemos vacío
  // y controlamos por pantalla/permisos. Luego afinamos por "clases".
  return [];
}

function require_role(array $roles): void {
  foreach ($roles as $r) {
    if (has_role($r)) return;
  }
  http_response_code(403);
  echo "Acceso denegado.";
  exit;
}
