Проблема в том, что самый распространенный способ отключения плагина — просто удалить его и затем пересобрать. Поэтому внутри Discourse плагин просто «исчезает» мгновенно.
Как насчет компонента темы, который, если настройка private_topics_enabled не найдена или имеет значение false, отображает предупреждающий баннер и использует CSS для скрытия некоторых конкретных категорий, чтобы смягчить последствия?
Если бы было возможно реализовать этот плагин таким образом, чтобы он позволял дополнительным группам людей публиковать сообщения и видеть только свои собственные, отключение плагина не представляло бы никакого риска.
Я не могу точно сказать, где именно произошло изменение в ядре, но, по моему мнению, некоторое изменение до коммита 57df0d526e позволило пользователям видеть заголовки тем на главной странице. Это изменение в поведении, насколько я помню.
Я протестировал это на ветке tests-passed, актуальной на сегодня (4c7d58a, после вашего коммита), и не смог воспроизвести проблему.
Создайте пустой форум.
Включите плагин приватных тем.
Включите приватные темы в категории site-feedback.
Создайте пользователя 1 и попросите его создать пост в site-feedback.
Выйдите из системы и убедитесь, что анонимные пользователи не видят эту тему.
Создайте пользователя 2 и убедитесь, что он не видит тему ни в категории, ни на главной странице (маршруты обнаружения), включая разделы «Новое» и «Популярное».
Отключите приватные темы и проверьте, что тема появляется для пользователя 2.
Выйдите из системы и проверьте, что тема появляется для анонимных пользователей.
Понимаете ли вы, что администраторы могут видеть всё (согласно настройке категории «Темы видны автору темы и пользователям следующих групп» и настройке плагина «Администраторы видят все приватные темы»), а все пользователи могут видеть посты администраторов (согласно настройке плагина «Разрешенные группы для приватных тем»)?
Привет, Ричард, да! Я тестирую это в режиме инкогнито. У меня включено довольно много других плагинов, так что, возможно, что-то другое мешает. Я вернусь к тебе после отключения некоторых — извини, что всё не так однозначно, как я сначала думал.
Я тестировал это на своём тестовом сайте с 93 плагинами, так что это вызывает у меня интерес
Тем не менее, я также протестировал это без авторизованного пользователя. Однако стоит иметь в виду, что анонимные страницы кэшируются на разных уровнях, поэтому, если вы включите плагин «Приватные темы», вы всё ещё можете видеть существующие темы в течение нескольких минут.
К сожалению, мне не удалось выявить конфликты, вызванные плагинами. Уверен, что мои скромные 15 плагинов наверняка покрыты 91 плагином на вашем тестовом сайте!
Оба скриншота сделаны в режиме инкогнито, и я могу воспроизвести проблему с пользователем, у которого нет прав для просмотра содержимого приватных категорий тем. Я также проверил настройки категорий для приватных тем и глобальные настройки сайта — там тоже всё в порядке.
Если вы сможете предложить дополнительные шаги для отладки или проверки, буду очень признателен. Но в любом случае большое спасибо за вашу поддержку — этот плагин действительно отлично справляется с нашими задачами!
Если этот плагин используется вместе с плагином Discourse Private Replies, возникает бесконечная рекурсия в дайджестах, поскольку оба плагина используют alias_method :original_for_digest, :for_digest.
Могут ли пользователи отправлять запросы на доступ создателю темы?
Аналогично обмену файлами и папками в Google Drive, создатель темы, получивший уведомление о запросе доступа к теме, может разрешить или отказать в просмотре содержимого темы. Уведомление приходит по электронной почте или через уведомления Discourse.
Это означает, что заголовок темы теперь общедоступен, но пользователям необходимо нажать кнопку «Запросить доступ».
Мы ищем способ предоставить поддержку (ПРИВАТНО). То есть учитель может назначить домашнее задание ученику. Ученик может отправить свои ответы. Только ученик и учитель могут просматривать задание.
Учитель также может назначить домашнее задание классу; только члены этого КЛАССА могут просматривать вопрос и ответы.
Я увидел этот плагин:
Интересует, подходит ли он для такой задачи.
Спасибо.