$id > 0); if (empty($ids)) { App::flash('error', "Aucun TFE sélectionné."); header('Location: /admin/'); exit; } $db->bulkSetVisibility($ids, $accessTypeId); $logger->logVisibility($accessTypeId, array_values($ids)); App::flash('success', count($ids) . " TFE(s) mis à jour."); } else { $thesisId = filter_var($_POST['thesis_id'] ?? '', FILTER_VALIDATE_INT); if (!$thesisId) { App::flash('error', "ID invalide."); header('Location: /admin/'); exit; } $db->setVisibility($thesisId, $accessTypeId); $logger->logVisibility($accessTypeId, [$thesisId]); App::flash('success', "Visibilité mise à jour."); } } catch (Exception $e) { error_log("visibility.php error: " . $e->getMessage()); App::flash('error', "Erreur : " . $e->getMessage()); } $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); header('Location: /admin/'); exit;