2.9.0.beta11: Исправления безопасности, новая общая категория, улучшения боковой панели и многое другое

Новые функции в версии 2.9.0.beta11

Обновления безопасности

Эта бета-версия включает 3 исправления уязвимостей, о которых сообщили члены нашего сообщества и HackerOne.

  • Ограничение отображения заголовков тем, связанных с бейджами пользователей CVE-2022-39378
  • Расширение и улучшение защиты от SSRF CVE-2022-39241
  • Исправление проверки электронной почты в ссылках-приглашениях CVE-2022-39356

Обновления безопасности плагинов

Несколько плагинов также получили исправления уязвимостей. Обязательно обновите плагины, а также сам Discourse.

  • Patreon: CVE-2022-39355
  • Чат: уязвимость названий и описаний каналов к XSS-атакам CVE-2022-39279
  • Интеграция чата: недостаточная защита от серверных подделок запросов (SSRF) CVE-2022-39241
  • OAuth2 Basic: недостаточная защита от серверных подделок запросов (SSRF) CVE-2022-39241
  • OpenID Connect: недостаточная защита от серверных подделок запросов (SSRF) CVE-2022-39241

Категория “General” по умолчанию

Для сайтов с категорией General она теперь будет автоматически выбираться при создании новой темы.

Новое настройка сайта: require change email confirmation

Мы добавили новую настройку сайта require change email confirmation. При включении все пользователи должны подтверждать как свой текущий, так и новый адрес электронной почты при его изменении. При отключении подтверждение текущего адреса требуется только сотрудникам.

Скрытие приветственной темы, если она не редактировалась

Все сайты Discourse поставляются с приветственной темой, которую администраторам предлагается отредактировать при настройке сайта. Теперь эта тема скрыта от пользователей, не являющихся администраторами, пока не будет внесено изменение.

Боковая панель: возможность выбора пользователем предпочитаемого назначения списка

Пользователи могут выбрать между Default (по умолчанию) или new/unread (новые/непрочитанные) в качестве назначения при нажатии на ссылки в боковой панели.

Боковая панель: отображение ссылки для администраторов, если категории/теги по умолчанию не настроены

Теперь для администраторов добавляется ссылка в боковую панель, если они не настроили настройки сайта default_sidebar_categories или default_sidebar_tags.

Подсказки для новых пользователей (экспериментально)

Настройка статуса пользователя через настройки аккаунта

Теперь пользовательские статусы можно настраивать через настройки аккаунта (/my/preferences/account) в дополнение к меню пользователя. Это изменение также позволяет администраторам через настройки сайта редактировать и/или очищать пользовательский статус при необходимости.

Опция темного режима для логотипов категорий

Администраторы теперь могут загружать второй логотип категории, который будет использоваться для темных тем.

17 лайков

Ещё больше!

Но подождите, есть ещё! Мы делаем всё возможное, чтобы выделить для вас новые функции и изменения, но изменений всегда слишком много, чтобы описать их все подробно. Для полного списка новых функций, исправлений ошибок, улучшений UX и прочего обязательно ознакомьтесь с разделом «Дополнительные функции и исправления», представленным ниже.

Улучшения плагинов

Assign

Исправления ошибок
  • Отображение иконки группы для уведомлений о группах

Chat

Новые функции
  • Улучшение опыта работы с экраном индекса чата на мобильных устройствах
  • Улучшенный выбор эмодзи
  • Включение возможности отметки для личных сообщений (DM)
  • Встроенный видеоплеер для загруженных видео
  • Связывание общего канала чата с общей категорией
  • Использование direct_message_enabled_groups для доступа к личным сообщениям
  • Улучшение системы отметок сообщений чата.
Исправления ошибок
  • Предотвращение отправки сообщений пользователями с запретом на публикацию
  • 10 мс может быть слишком мало для обхода на iOS
  • Удаление requestAnimationFrame
  • Улучшение обхода для инерционного прокручивания на iOS
  • Гарантия удаления фона действий при сворачивании на мобильных устройствах
  • Проблемы индекса каналов на мобильных устройствах
  • Перемещение имени эмодзи реакции из класса в атрибут данных
  • Улучшение хранилища реакций чата
  • Предотвращение исключения при транскрибации нескольких сообщений
  • Отсутствие сбоя при попытке отображения флагов DM в очереди проверки.
  • Делает фильтрацию эмодзи регистронезависимой
  • Удаление перехвата на вебхуке и улучшение документации
  • Гарантия наличия заголовка у эмодзи в палитре выбора
  • По умолчанию теперь используется только для пользовательских эмодзи
  • Предотвращение применения эффекта мерцания к боковой панели
  • Предотвращение добавления t1 к выбранному оттеночному эмодзи
  • Firefox использует relatedTarget для toElement/fromElement
  • Предотвращение появления пустого экрана на iOS при первоначальной загрузке
  • Избегание пустого экрана на iOS при липкой прокрутке
  • Зависший кэш основных эмодзи мог возвращать эмодзи без search_aliases
  • Гарантия сброса выбора сообщений при переключении канала
  • Предотвращение появления полосы прокрутки поверх контента на Android
  • Использование sidebar contentCSSClass для заглушенных каналов
  • Сотрудники всегда должны иметь возможность общаться
  • Уточнения для direct_message_enabled_groups
  • Кнопка закрытия не видна на странице индекса чата
  • Удаление старых сообщений должно также очищать флаги.
  • Предпочтение ссылки /chat/channel/:id/:title?messageId=x
  • Ужесточение ограничений на отметку сообщений чата.
  • Правильное цензурирование отрывков
  • Упрощение кода загрузки сообщений
  • Принудительное использование chat_channel_id при наличии
  • Добавление недостающего перевода chat_message_flag_allowed_groups
  • Применение chat_allow_uploads к каналам личных сообщений
Изменения UX
  • Исправление цвета ссылок на карточках каналов
  • Реализация кнопки «Покинуть» на карточке канала
  • Корректировка отступов композитора/загрузок
  • Гарантия получения фокуса полем поиска в палитре эмодзи при первой загрузке
  • Двойной щелчок по одному из ваших сообщений запускает его редактирование
  • Перемещение кнопки нового канала в представление обзора
Доступность
  • Отображение вариантов цвета эмодзи в режиме высокой контрастности (WHCM)

discourse-voting

Изменения UX
  • Избегание двойного тега li в слоте user-activity-bottom

discourse-calendar

Новые функции
  • Установка статуса пользователя в ядре, когда пользователь находится в отпуске
Исправления ошибок
  • Календарь не сбрасывал истекшие статусы
  • Отключение сортировки заголовка теперь проверяет правильную настройку сайта и по умолчанию возвращает false

discourse-data-explorer

Исправления ошибок
  • Клик не открывает запрос
  • Ошибки при выполнении запроса из-за шаблонов или комментариев PG

discourse-perspective-api

Исправления ошибок
  • Добавление проверки на nil для темы

discourse-code-review

Изменения UX
  • Удаление ненужного тега li для слота плагина user-activity-bottom

discourse-subscriptions

Исправления ошибок
  • Упрощение обработчика вебхука Stripe
Изменения UX
  • Делание стиля согласованным со всем остальным

discourse-policy

Новые функции
  • Уведомления по электронной почте о политиках
Исправления ошибок
  • Добавление префикса к перечислениям UserOption для избежания конфликтов

discourse-cakeday

Новые функции
  • Раздельные ссылки в боковой панели для годовщины и дня рождения

discourse-shared-edits

Исправления ошибок
  • Валидация поста при подтверждении ревизии
  • Ошибка AppEvents.off при уничтожении контроллера:topic

discourse-reactions

Исправления ошибок
  • Не переопределять основное сообщение об ошибке ограничения скорости
  • Обработка сообщений об ошибке ограничения скорости на стороне сервера
  • Удаленная тема должна исключать её из данных реакций
Изменения UX
  • Использование обычного курсора мыши во всплывающем окне
  • Удаление ненужного тега li для слота плагина
  • Удаление ненужного тега li для слота плагина user-activity-bottom

discourse-automation

Новые функции
  • Добавление настроек и enable_manual_trigger
  • Добавление поддержки once для скрипта автоответчика

discourse-question-answer-discourse

Исправления ошибок
  • Корректировка сортировки заголовков ответов QA в режиме RTL

discourse-footnote

Исправления ошибок
  • Не регистрировать плагин, если отсутствует window.markdownitFootnote

discourse-gamification

Новые функции
  • Добавлена настройка для периода таблицы лидеров по умолчанию
Исправления ошибок
  • Обновление репозитория канона плагина
Изменения UX
  • Возможность выбора любой таблицы лидеров в минимальном компоненте
  • Добавление короны
  • Минимальные стили таблицы лидеров

Дополнительные функции и исправления

Нажмите, чтобы развернуть

Новые функции

  • Снижение предупреждения о подозрительных входах по расстоянию до 100 км
  • Контроль ширины темы с помощью переменных
  • Универсальная сортировка автодополнения хэштегов
  • Добавление кнопки сброса видимых всплывающих окон
  • Универсальное автодополнение хэштегов, часть 1
  • Реализация новых всплывающих окон онбординга
  • Отображение относительного времени, когда дата опущена
  • Добавление contentCSSClass для ссылки раздела боковой панели
  • Двойной цвет для префикса подкатегорий
  • Добавление seeded default категорий в боковую панель
  • Предзагрузка ресурсов через заголовок ссылки
  • Пропуск отображения дня, когда день «до» совпадает с днем «с»
  • Добавлен новый слот topic-list-main-link-bottom для мобильных устройств
  • Обработка oneboxes для сложных URL GitHub
  • При входе в тему прокрутка к метке последней посещенной строки

Исправления ошибок

  • Невозможно изменить уровень уведомлений категорий, установленных как обычные
  • Оценка всех обратных вызовов вместо их переопределения
  • Не уведомлять автора темы о постах с мелкими действиями
  • Исправления после сброса ошибки страницы сброса пароля
  • Упрощение отображения множественных ошибок AJAX
  • Не пытаться снова добавить пользователя в группу при синхронизации групп через SSO
  • Игнорирование конфликтов уникальности при заполнении боковой панели по умолчанию
  • Гарантия того, что пользовательский модификатор {{action}} работает с хешем действий
  • Несколько элементов темы слишком широкие
  • Перемещение имени группы из класса в атрибут данных в group-box
  • Разрешение входа пользователям, уже находящимся в автоматических группах
  • Добавление тега meta theme-color при выборе темной схемы
  • Опечатка в имени переменной
  • Сброс свойств ошибок в модели Topic
  • Логирование добавления/удаления пользователя из групп при изменении через DiscourseConnect
  • Выборщик категорий не обновляет выбор при редактировании reviewable
  • Правильный сброс свойства controllerReady
  • Использование только первой строки из сообщения коммита
  • Небольшая опечатка
  • Установка max-width для изображения логотипа категории
  • Клиентские проверки для personal_message_enabled_groups
  • Установка ширины для изображения логотипа категории, а не контейнера
  • Не показывать страницу 404 при посещении сообщений
  • Правильная дебаунсировка различных функций
  • Вычисление смещения заголовка один раз при загрузке
  • Пропуск всех проверок постов при необходимости
  • Гарантия того, что минификация не нарушает коллоцированные коннекторы
  • Не включать эмодзи без групп в стандартный список
  • Sidebar_list_destination в CurrentUserSerializer
  • Гарантия того, что выпадающий список находится выше соседних меток
  • Назначение списка боковой панели для отслеживаемых и тегов
  • Исключение скрытых постов темы и мелких действий из RSS-ленты.
  • Появление состояния фокуса карточки пользователя при клике
  • Уточнение копирования ключа безопасности
  • Сброс general_category_id, если общая категория была удалена
  • Предотвращение сдвига макета при перемещении по выпадающему списку
  • Корректировка ячеек пользователей на уровень доверия в режиме RTL
  • Удаление шифров RS384 и RS512 cose
  • Отображение дат временных шкал как кликабельных
  • Action_code_path не загружается для user-stream-item
  • Отсутствующий значок категории для категории с цветом, хранящимся в виде 3-значного шестнадцатеричного кода
  • Ссылка на категорию в боковой панели не активна при фильтрации по «ничего» и «все»
  • Замена prefixCSS на prefixElementColors
  • Удаление элементов nil перед сортировкой массива строк sha1.
  • Сброс связанных настроек сайта при удалении общей категории
  • Эмодзи статуса отображался слева на мобильных устройствах
  • Выравнивание эмодзи статуса пользователя в постах
  • Правильная обработка HTTP-ошибок при расчете доминирующего цвета
  • Опечатка
  • Предупреждение о стиле префикса боковой панели
  • Стилизация поля пользователя при входе
  • Изменение текста
  • Ссылки «показать детали» в журнале действий сотрудников
  • Гарантия корректной работы ярлыков локального формата даты
  • Гарантия корректной работы кнопок переключения типа опроса
  • Устаревшие настройки не должны переопределяться из интерфейса
  • Скрытие старых настроек личных сообщений
  • Отображение ошибки, если поле совпадает с паролем
  • Удаление функциональности публичного приглашения в тему
  • Не показывать баннер приветствия CTA, если тема приветствия удалена
  • Гарантия сортировки почтовых ящиков групп в разделе сообщений по имени группы
  • Определение локального диапазона дат одного и того же вызывает ошибку, когда даты нет
  • «Прибыть в тему» должно быть скрыто, когда must_approve_users
  • Улучшение обработки ошибок для calculate_dominant_color!
  • Не заполнять значение заголовка сайта по умолчанию на шаге введения мастера
  • Гарантия добавления первых пользователей-администраторов в автоматические группы
  • Наблюдаемая тема преодолевает заглушенную категорию
  • Возможность вызова эмодзи после отступного блока кода
  • Отсутствующий значок раздела боковой панели для тегов личных сообщений
  • Ссылка на discovery.category в боковой панели`
  • Пропуск проверок качества заголовка для статических тем при редактировании администратором
  • Правильный подсчет результирующих массовых приглашений
  • Не показывать статус пользователя в постах дважды
  • Изменения новой общей категории препятствуют созданию темы
  • Отображение ссылки обзора в боковой панели для пользователей, которые не могут проводить обзор
  • Обход ошибки в gem R2 для создания валидного CSS RTL
  • Разрешение входа по электронной почте для администраторов в режиме staff-writes-only-mode
  • Разрешение выхода для администраторов в режиме staff-writes-only-mode
  • Удаление символа нулевой ширины, когда это не необходимо
  • Добавление более строгих валидаторов приглашений
  • Откат рекурсивного поиска тегов с отсутствующими тегами-предками
  • Отсутствие загрузки темы не должно нарушать процесс предкомпиляции.
  • Удаление предупреждения о напоминании закладок для напоминаний, установленных в прошлом
  • Гарантия того, что закрытие боковой панели отменяет все обратные вызовы.
  • Странности при начале новых загрузок, когда одна уже была в процессе

Изменения UX

  • Гарантия сохранения размера изображения даже после ошибки загрузки
  • Замена текста «категории/теги не настроены» в боковой панели на ссылку
  • Исправление грамматической опечатки в trust_level_unlocked_tip
  • Изменение графики эмодзи на странице ошибки приглашения
  • Делание всей коробки категории кликабельной
  • Разрешение переносов строк посередине слова в путях файлов onebox GitHub
  • Использование более дружелюбного образовательного сообщения
  • Отправка уведомления типа replied автору темы, если он наблюдает за темой
  • Перетаскивание меню новых пользователей, прокрутка основного пользовательского навигатора
  • Исправление отображения статуса пользователя в автодополнении
  • Прекращение возврата к изображению темы при встраивании
  • Улучшение стилей автодополнения
  • Отображение кнопки редактирования категории при пересечении тегов
  • Расширение горизонтального пользовательского навигатора на все пользовательские страницы
  • Правильное использование заглавных букв
  • Исправление текста кнопки отмены alt-текста в темном режиме
  • Изменение кнопки на серый цвет
  • Упрощение визуальных элементов режима Bootstrap
  • Предотвращение длины имени ответа более 400 пикселей
  • Редактирование приветствия CTA
  • Обновление подсветки настроек темы
  • Горизонтальные элементы управления прокруткой для нового пользовательского навигатора
  • Скрытие горячих клавиш на мобильных устройствах
  • Редактирование онбординга
  • Условное отображение раздела тегов боковой панели для пользователя
  • Условное скрытие раздела категорий боковой панели для пользователя
  • Скрытие раздела тегов в боковой панели, когда у пользователя нет видимых тегов
  • Обновление цвета опасности
  • Обновленные стили для пользовательского навигатора с боковой панелью
  • Скрытие раздела тегов от анонимного пользователя, когда на сайте нет тегов
  • Исправление цвета на навигацию вместо цвета опасности
  • По умолчанию темный логотип категории на темных схемах
  • Добавление большего отступа для кнопок вкладок
  • Гарантия того, что мы не фокусируем невидимую кнопку в боковой панели
  • More...More в боковой панели
  • Скрытие боковой панели на маршруте 2FA
  • Изменение иконки навигации уведомлений на странице пользователя на колокольчик
  • Добавление max-width к сводному письму, форматирование erb
  • Исправление плейсхолдера поста на мобильных устройствах
  • Перемещение кнопки отклонения снизу вправо от сообщения в подвале

Производительность

  • Исключение анонимных тегов боковой панели в сериализаторе сайта для авторизованного пользователя
  • Перемещение расчета доминирующего цвета в отдельную задачу

Доступность

  • Добавление поддержки клавиатуры для встраивания YouTube
  • Добавление заголовка для кнопки удаления черновиков
  • Добавление атрибутов for для местоположения и веб-сайта в профиле
  • Сортируемые элементы заголовка должны иметь указатель
  • Добавление aria-label к значкам постов темы
  • Возврат фокуса на кнопку поиска в заголовке при выходе из поиска
  • Улучшение доступности поиска групп
  • Улучшение внешнего вида карточки пользователя в режиме WHCM
  • Добавление aria-меток для постов в активности групп
  • Улучшение временной шкалы темы в режиме WHCM
  • Модальное окно закладок
  • Добавление href к аватарам частых авторов
  • Улучшение доступности в темах WHCM
  • Добавление большей информации к метке кнопки «ответить».
  • Сигнал о том, что переключатель заголовка может переупорядочить элементы таблицы.
  • Удержание фокуса на модальном окне безопасности аутентификации
  • Делание ошибок всплывающего окна ввода доступными с клавиатуры
  • Исправление порядка вкладок в модальном окне «Особенность темы»
  • Делание элемента «Загрузить родительский пост» доступным
  • Установка role=presentation, если отсутствует атрибут alt
9 лайков