Иногда возникает ситуация, когда форум необходимо перевести в режим «только для чтения», чтобы запретить создание новых сообщений.
Однако крайне раздражает, что режим «только для чтения» также блокирует внесение изменений в конфигурацию, синхронизацию SSO и вход в систему.
Было бы здорово, если бы существовал какой-то частичный режим «только для чтения», при котором только сообщения и действия с ними были бы недоступны для редактирования.
В данный момент единственное, что приходит в голову, — это лишить права на публикацию сообщений все группы безопасности категорий, но это довольно костыльное решение, требующее временного хранения этих данных в другом месте.
Есть ли у кого-нибудь идеи, как лучше всего решить эту задачу?
Вероятно, это область плагинов, но всё же: какой подход был бы наиболее оптимальным?
Настройка плагина в сочетании с настройкой сайта должна решить проблему.
Попробуйте, возможно, использовать хук validate_post и добавить пользовательскую валидацию, которая возвращает «недопустимо», если настройка сайта установлена в режим только для чтения.
Я использовал NewPostManager.add_handler, но, похоже, событие :validate_post лишь уведомляет и не предоставляет возможности вернуть результат и отклонить пост.
Для нашего сообщества этот плагин предоставляет режим «Суббота». Его основная идея — побудить участников сообщества применить полученный в онлайн-среде опыт и с любовью служить своим ближним в местных сообществах.
Ключевые компоненты, реализованные Ричардом:
Возможность планировать как регулярные, так и периодические интервалы, когда публикация сообщений отключена и снова включается. Можно отключать публикацию на выходные (постоянно), а также на основные праздники (периодически).
Возможность синхронизировать это с пользовательским глобальным баннером, чтобы не вводить участников в заблуждение («почему сайт не работает?!»). Вместо этого мы можем чётко объяснить посетителям и участникам, почему публикация временно отключена.
Что касается другой активности:
Отключение реакций соответствует первоначальному замыслу, но, возможно, это можно сделать переключателем, который администраторы могут включать для расширения гибкости этой настройки сайта.
Я не думаю, что этот плагин влияет на другие плагины.
Создание новых аккаунтов возможно — отключена только публикация сообщений.
Он работает безупречно. Я рад, что эта возможность может быть включена в дорожную карту.
@outofthebox На самом деле планирование не входит в состав этого плагина; это плагин scheduled-readonly, который тесно взаимодействует с плагином prevent-posting.
Я очень рад это услышать, так как я экспериментировал с идеей режима «шаббат» или отпуска, поскольку мне может понадобиться время на отдых, особенно если я управляю своим сайтом Discourse параллельно с проведением курса.
Думаю, я попробую оба плагина, спасибо!
РЕДАКТИРОВАНИЕ: Я только что протестировал это, и у меня всё заработало на одном из моих сайтов, но когда я попытался отредактировать плагин, чтобы отключить его, система сообщила, что он находится в режиме только для чтения, и я не мог изменить настройку. Я попробовал нажать «отключить режим только для чтения» в разделе Администрирование > Резервные копии, но, похоже, плагин переопределял эту настройку.
Когда плагин включён и находится в периоде режима только для чтения, есть ли способ его отключить?
РЕДАКТИРОВАНИЕ 2: Мне пришлось пересобрать систему без этого плагина, так как он застрял и принудительно включил режим только для чтения даже после истечения времени. Не знаю, мог ли я сам вызвать это, нажав кнопку «отключить режим только для чтения». Кроме того, по какой-то причине праздничный период не включался даже на другом экземпляре Discourse, так что я в полном недоумении
Что-то похожее на то, что описал OP, теперь возможно.
Недавно мы добавили режим «только для сотрудников» — это режим только для чтения, который влияет только на пользователей, не являющихся сотрудниками. Он позволяет сотрудникам входить в систему, публиковать сообщения, изменять настройки и т. д., в то время как другие пользователи видят сайт, фактически находящийся в режиме только для чтения.
Есть ли шанс реализовать ADMIN_WRITES_ONLY_MODE_KEY, чтобы также предотвращать действия модерации?
У меня есть сценарий использования, при котором я переводю форум в режим только для чтения, выполняю резервное копирование, а затем оставляю форум онлайн и доступным для просмотра, пока новый VPS пересоздается с нуля, резервная копия восстанавливается, а затем IP-адрес безотказно переключается на новый сервер.
Любые действия модерации на старом сервере после создания резервной копии/перевода в режим только для чтения будут утеряны после переключения на активный сервер, если модераторы исключены из частичного режима только для чтения.
В настоящее время я использую полный режим только для чтения, но это неудобно, так как это также предотвращает изменения администратора через веб-интерфейс.
На всякий случай для тех, кто тестирует плагин Scheduled Read-Only: я запустил тестовый сценарий примерно на 2 минуты и не мог понять, почему он не отключился — оказалось, что проверка происходит только раз в 5 минут.