@Falco Возможно ли добавить в настройки сайта/сериализатор публичную проверку того, настроен ли LiveKit, наряду с voice_enabled?
Сейчас voice_enabled доступен на клиенте, но нет публичного сигнала о том, может ли сайт предоставлять LiveKit. Единственный атрибут сайта, связанный с LiveKit, voice_livekit_per_room_available, привязан к флажку в форме комнаты, поэтому при политике all_rooms он возвращает false и не может быть использован для ответа на вопрос «использует ли этот сайт LiveKit вообще».
RoomSerializer#expected_transport хорошо покрывает случай для каждой комнаты, но для этого сначала нужно получить список комнат, а при выключенном voice_public_access он возвращается пустым, даже на сайте, где LiveKit полностью настроен.
Будет ли приемлемо что-то вроде этого? Это выводится из существующего состояния, не раскрывает учётные данные или детали политик и не требует нового эндпоинта.
Этот код будет добавлен в plugins/voice/plugin.rb, после блока voice_livekit_per_room_available и сразу перед строкой Voice::DefaultRoomSeeder.ensure!:
# Публичный сигнал без учётных данных о том, что сайт может предоставлять LiveKit вообще.
add_to_serializer(:site, :voice_livekit_available) do
Voice::Livekit.configured? && SiteSetting.voice_livekit_room_policy != "disabled"
end