Плагин для приватных тем

Проблема в том, что самый распространенный способ отключения плагина — просто удалить его и затем пересобрать. Поэтому внутри Discourse плагин просто «исчезает» мгновенно.

Как насчет компонента темы, который, если настройка private_topics_enabled не найдена или имеет значение false, отображает предупреждающий баннер и использует CSS для скрытия некоторых конкретных категорий, чтобы смягчить последствия?

2 лайка

Понятно. Улучшит ли ситуацию в данном случае предупреждающее сообщение в stdout/stderr? (Само по себе может быть недостаточно, но лучше, чем ничего.)

Та же проблема: в данный момент, когда плагин удалён, некому будет вывести это сообщение.

Звучит на самом деле неплохо. Я думаю.

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

Я не могу точно сказать, где именно произошло изменение в ядре, но, по моему мнению, некоторое изменение до коммита 57df0d526e позволило пользователям видеть заголовки тем на главной странице. Это изменение в поведении, насколько я помню.

1 лайк

Я протестировал это на ветке tests-passed, актуальной на сегодня (4c7d58a, после вашего коммита), и не смог воспроизвести проблему.

  • Создайте пустой форум.
  • Включите плагин приватных тем.
  • Включите приватные темы в категории site-feedback.
  • Создайте пользователя 1 и попросите его создать пост в site-feedback.
  • Выйдите из системы и убедитесь, что анонимные пользователи не видят эту тему.
  • Создайте пользователя 2 и убедитесь, что он не видит тему ни в категории, ни на главной странице (маршруты обнаружения), включая разделы «Новое» и «Популярное».
  • Отключите приватные темы и проверьте, что тема появляется для пользователя 2.
  • Выйдите из системы и проверьте, что тема появляется для анонимных пользователей.

Понимаете ли вы, что администраторы могут видеть всё (согласно настройке категории «Темы видны автору темы и пользователям следующих групп» и настройке плагина «Администраторы видят все приватные темы»), а все пользователи могут видеть посты администраторов (согласно настройке плагина «Разрешенные группы для приватных тем»)?

Привет, Ричард, да! Я тестирую это в режиме инкогнито. У меня включено довольно много других плагинов, так что, возможно, что-то другое мешает. Я вернусь к тебе после отключения некоторых — извини, что всё не так однозначно, как я сначала думал.

1 лайк

Я тестировал это на своём тестовом сайте с 93 плагинами, так что это вызывает у меня интерес :wink:

Тем не менее, я также протестировал это без авторизованного пользователя. Однако стоит иметь в виду, что анонимные страницы кэшируются на разных уровнях, поэтому, если вы включите плагин «Приватные темы», вы всё ещё можете видеть существующие темы в течение нескольких минут.

2 лайка

К сожалению, мне не удалось выявить конфликты, вызванные плагинами. Уверен, что мои скромные 15 плагинов наверняка покрыты 91 плагином на вашем тестовом сайте! :stuck_out_tongue:

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

Если вы сможете предложить дополнительные шаги для отладки или проверки, буду очень признателен. Но в любом случае большое спасибо за вашу поддержку — этот плагин действительно отлично справляется с нашими задачами! :slight_smile:

1 лайк

Ага, именно настройка категории вызывает это. Я могу воспроизвести. Продолжение следует.
Спасибо за сообщение об ошибке!

2 лайка

Я исправил проблему, описанную выше.

3 лайка

Если этот плагин используется вместе с плагином Discourse Private Replies, возникает бесконечная рекурсия в дайджестах, поскольку оба плагина используют alias_method :original_for_digest, :for_digest.

2 лайка

Спасибо за сообщение об этом. Я устранил конфликт.

1 лайк

Могут ли пользователи отправлять запросы на доступ создателю темы?

Аналогично обмену файлами и папками в Google Drive, создатель темы, получивший уведомление о запросе доступа к теме, может разрешить или отказать в просмотре содержимого темы. Уведомление приходит по электронной почте или через уведомления Discourse.

Это означает, что заголовок темы теперь общедоступен, но пользователям необходимо нажать кнопку «Запросить доступ».

Спасибо!

Это можно реализовать, предоставив пользователям возможность запрашивать доступ к группе, а группе — доступ к темам.

2 лайка

У Ричарда есть ещё один плагин, похожий, но с отличиями, который тоже может подойти…

1 лайк

Привет, @RGJ,

Мы с большим удовольствием используем ваш плагин.

Некоторые из наших участников сообщают, что получают сообщение о новых ответах.

Было более 100 новых, но при нажатии я вижу только сообщение «У вас нет новых тем».

Можно ли отключить уведомления о новых ответах для этой конкретной приватной категории?

Спасибо!

Мы ищем способ предоставить поддержку (ПРИВАТНО). То есть учитель может назначить домашнее задание ученику. Ученик может отправить свои ответы. Только ученик и учитель могут просматривать задание.
Учитель также может назначить домашнее задание классу; только члены этого КЛАССА могут просматривать вопрос и ответы.
Я увидел этот плагин:

Интересует, подходит ли он для такой задачи.
Спасибо.

Безусловно.

Для класса можно рассмотреть категорию, доступ к которой ограничен группой, включающей студентов этого класса.

4 лайка