Заметки к выпуску Discourse 2.4.0.beta9

Новые функции в версии 2.4.0.beta9

Тема на профиле

Теперь пользователи могут выбрать тему, которую они хотят разместить на своём профиле. Эта тема будет отображаться на карточке пользователя, а также на странице профиля. Добавить тему можно в разделе «Настройки» → вкладка «Профиль».

Удаление директивы unsafe-eval из CSP

Мы постоянно ищем способы сделать Discourse ещё более безопасным. В конце прошлого года мы добавили поддержку политики безопасности контента (Content Security Policy, CSP) в Discourse. CSP помогает смягчать XSS-атаки — одну из самых распространённых уязвимостей в веб-разработке. Чтобы обеспечить полную поддержку существующих функций Discourse и плагинов, мы включали директиву unsafe-eval. Сейчас мы полностью убрали использование функции eval() из Discourse в продакшн-среде, а также из наших официальных плагинов, поэтому удалили unsafe-eval из нашей CSP, сделав её ещё строже.

Хэширование ключей API в базе данных

Ключи API теперь видны только при создании. После этого в базе данных хранятся только первые четыре символа для идентификации, а также SHA256-хэш полного ключа. Это упрощает аудит использования ключей и гарантирует, что в случае утечки базы данных злоумышленники не получат доступ к работающему сайту.

Перенос поддержки Internet Explorer в основной плагин

Discourse прекратит поддержку Internet Explorer в июне 2020 года. (Официальное объявление будет сделано в середине января). В рамках подготовки к этому код, специфичный для Internet Explorer, перенесён в отдельный плагин, что упростит его удаление в июне.

Предупреждение при установке компонента темы без добавления к теме

При создании или установке компонента темы пользователи могут забыть, что его необходимо добавить к теме, чтобы он стал активным. Только после первоначального создания/установки пользователи будут получать предупреждение, если попытаются покинуть страницу компонента темы, не добавив его к какой-либо теме.

32 лайка

Еще больше!

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

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

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

  • Исправлена проверка разрешений при отзыве ключей API пользователя
  • Уязвимость в WildcardUrlChecker
  • Обновление rack-mini-profiler для предотвращения возможной XSS-атаки
  • Удалены обработчики событий из SVG-файлов
  • Обеспечено, что во встроенном виде могут быть только изображения
  • Обновление puma с версии 3.12.1 до 3.12.2

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

BCC

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

Data Explorer

  • Добавлены дополнительные перечисления (enums)
  • Улучшено отображение всплывающей подсказки с информацией

RSS Polling

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

Voting

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

Solved

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

Docker Manager

  • Исправление безопасности: обновление зависимостей

GitHub

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

User Notes

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

Group Tracker

  • Улучшения UX

Sitemap

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

Policy

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

Calendar

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

Encrypt

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

Logster

  • Поддержка пользовательских шаблонов группировки
  • Исправления ошибок

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

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

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

  • Сделано так, что «Изменить порядок категорий» работает с вложенными категориями
  • Добавлено сообщение при несовпадении паролей в rake admin:create
  • Добавлена настройка сайта для удаления заголовка X-Frame-Options.

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

  • Включён polyfill для Symbol для IE11
  • Совместимость с IE11 для проверки readonly
  • Отображение родительских и подкатегорий для категорий второго уровня
  • Предотвращение ошибок в IE11 после AJAX-запроса
  • Добавлен недостающий polyfill Object.entries для IE11
  • Отображение кнопки «Новое/Непрочитанное» при создании новой темы или сообщения
  • Система параллельных тестов требует отдельной папки для загрузки для каждого рабочего процесса.
  • Перемещение специфичных для IE правил CSS в плагин discourse-internet-explorer
  • Удаление опции результатов ‘staff_only’ для не-сотрудников
  • Исправление компонента choose-topic для поиска по URL
  • Избегание использования String.matchAll для поддержки IE11
  • Использование даты updated_at для обозначения истёкших приглашений
  • Предотвращение сбоя в discourse_tagging при пустом термине
  • Если красивый слаг является числом, возвращается значение по умолчанию
  • Require: false для gem rotp
  • ID категории в filterCategory
  • Проверка существования currentUser перед получением ID
  • Если запускается db:migrate отдельно, он должен загружать окружение
  • Пути миграций забывались
  • Разрешение скрипту IE загружаться через CDN
  • Предоставление статуса сотрудника должно автоматически одобрять пользователей, ожидающих одобрения
  • Ошибка ограничения при вставке одной и той же группы тем дважды
  • Кэширование короткого URL загрузки
  • Запрет использования c в качестве тега
  • Запрет использования none в качестве слага категории
  • Скрытие старой кнопки закладок в меню сообщения, если SiteSetting.enable_bookmarks_with_reminders
  • Замена устаревших URI.encode, URI.escape, URI.unescape и URI.unencode
  • Обновление заглушек S3 для дополнительных изменений API aws-sdk
  • Добавлен новый тип контента для темы/компонента
  • Не вызывать ошибку, если пользователь отсутствует
  • Предотвращение научной нотации при проверке свободного места
  • Всегда добавлять span с именем пользователя в элемент быстрого доступа
  • Изменение порядка категорий не работало
  • Алфавитная сортировка тегов в mini-tag-chooser
  • Поле ввода тегов не показывает все 5 разрешённых тегов
  • Обеспечено, что слаг и id не являются массивами
  • Отключённые теги учитываются в TopicTrackingState
  • Не пытаться создать пустой тег при обновлении темы
  • Ключ черновика по умолчанию в openComposerWithTopicParams
  • Оптимизация изображений в Onebox
  • Не предлагать автодополнение категорий или эмодзи в блоках кода
  • Запросы краулеров не отслеживаются для пользовательских агентов, не поддерживающих UTF-8
  • Пропуск проверки при принудительном изменении второго фактора, если значение равно «no»
  • Избегание снятия закрепления композера на iOS при вызове эмодзи
  • Игнорирование DMARC для писем, отправленных на зеркало почтового списка
  • Имена файлов изображений с точками отображались неверно в markdown композера
  • Страница входа, перенаправляющая на настройки, была нерабочей
  • Перенаправление на /login-preferences не работало для подпапок
  • Регрессия анонимного кэширования
  • Интерфейс экспорта опросов должен отображаться только для администраторов

Изменения UX

  • Улучшена стилизация под-подкатегорий в списке категорий
  • Отображение правнуков в списке категорий
  • Предотвращение появления меню администратора сообщения под заголовком на первом сообщении
  • Уменьшение непрозрачности скрытого содержимого темы, но не элементов управления
  • Небольшие корректировки страницы администратора пользователей, учитывающие длинные названия групп
  • Небольшая корректировка для предоставления поля ввода получателя ЛС большей гибкости
  • Увеличение области нажатия для комбобокса на мобильных устройствах
  • Множественное число для «лайков/прочитавших это»
  • Улучшено выравнивание кнопок входа/регистрации через социальные сети в Firefox
  • Z-index лайтбокса изображений должен быть выше, чем z-index модального окна
  • Улучшен текст на модальных окнах «Переместить в тему» и «Переместить в сообщение»
  • Включение публичных групп в набор упоминаемых групп
  • Небольшие исправления для модального окна регистрации на iOS
  • Стили комбобокса тегов должны соответствовать тегам в темах
  • Небольшие обновления стиля для информации о тегах
  • Попытки сделать загрузку графиков менее лагающей
  • Удаление «показать ещё» из модальных окон загрузки
  • Удаление анимации аватара для карточек мобильных пользователей
  • Удаление двойного кодирования заголовков пользователей.
19 лайков