
Выпустил Commentail 1.3.2 с исправлением ошибки предыдущего обновления. В 1.3.1 я усилил проверку принадлежности страницы сайту, но не учёл расположение переводов главной страницы в Wagtail. Из-за этого обсуждения корректных переводов могли стать недоступны.
Почему исчезали обсуждения
У Site в Wagtail задана корневая страница. При WAGTAIL_I18N_ENABLED=True её переводы могут начинать соседние деревья: например, русская и английская главные находятся рядом, а статьи каждой локализации — внутри своего дерева.
Проверка в 1.3.1 принимала только дерево настроенной корневой страницы. Английская статья под переводом главной оказывалась вне него, хотя Wagtail обслуживал её как часть того же сайта. Commentail отказывал в доступе к такому обсуждению. Переносить комментарии или создавать их заново для исправления не требуется.
Что учитывает новая проверка
В 1.3.2 при включённой интернационализации разрешены также деревья, которые начинаются с переводов главной страницы этого Site. Проверка применяется одинаково к виджету, формам и отправке комментариев, защищённым гостевым ссылкам, почтовой очереди и выборке последних комментариев.
При этом проверяется сама целевая страница в её языковом дереве: она должна быть опубликована, а ограничения просмотра, в том числе унаследованные от родителей, должны разрешать доступ. Наличие перевода отдельной статьи где-то за пределами разрешённых деревьев не открывает это дерево целиком.
Чужие деревья, страницы, перенесённые за их пределы, и защищённые ссылки другого Site по-прежнему отклоняются. Если интернационализация выключена, принимается только настроенное корневое дерево.
Обновление с 1.3.1
По сравнению с 1.3.1 в этом патче нет новой миграции Commentail, изменений зависимостей или шаблонов. Сохраните резервную копию сайта и установите пакет в его окружении:
python -m pip install commentail==1.3.2
python manage.py migrate
python manage.py check
python manage.py collectstatic --noinputПосле этого перезапустите приложение и фоновые процессы. Проверьте существующие обсуждения во всех языках, новую отправку, защищённые гостевые ссылки и почту в очереди. Отдельно убедитесь, что закрытые страницы сохранили ограничения доступа.
Письма, задания которых 1.3.1 успела отменить, автоматически в очередь не возвращаются. Их состояние нужно проверить отдельно, прежде чем решать, требуется ли замена. Восстановление доступа к обсуждению само по себе такое письмо не отправляет.
Переход с 1.3.0 и более ранних версий
Если 1.3.1 ещё не устанавливалась, нельзя пропустить её требования к обновлению. Миграция 0018_private_fingerprints остаётся необратимой и выполняется при переходе на 1.3.2. Нужны остановленные веб-процессы и фоновые обработчики записи, прежний SECRET_KEY и согласованная резервная копия базы, ключа и пакета.
Сначала отрепетируйте переход на восстановленной базе. Для возврата к версии до этой миграции понадобится восстановление соответствующей копии; одной переустановки пакета недостаточно. Полный порядок приведён в заметках к 1.3.1.
За nginx проверьте настройку TRUSTED_PROXIES: Commentail должен получать настоящий IP посетителя через доверенный прокси, иначе разные читатели могут делить общие квоты. Пример и проверка заголовков есть в руководстве по развёртыванию.
Проверки исправления
Добавил 13 регрессионных проверок: переводы главной и дочерние страницы, виджет на странице сайта, отправка от зарегистрированного пользователя, гостевые ссылки и письма, унаследованные ограничения, отключённая интернационализация, неопубликованные и перемещённые страницы, изоляция сайтов.
Подробности исправления и обновления доступны в заметках к релизу. Общий обзор библиотеки — на странице Commentail.
Выберите способ входа или оставьте комментарий как гость ниже.