Я использую Discourse для обсуждений в академической среде. У меня разные курсы разделены по группам и категориям, чтобы пользователи не видели посты друг друга. Это работает хорошо, за исключением одной проблемной ситуации: письма-дайджесты, по-видимому, включают заголовки и фрагменты тем, к которым у получателя письма нет доступа. Подтверждением этому служит то, что когда пользователь переходит по ссылке в письме, он попадает на страницу с ошибкой 404.
Звучит как ошибка. Однако для этого случая, как мне кажется, существуют довольно хорошие спецификации. У вас есть какие-либо плагины, которые могут что-то изменять?
Возможно, некоторые сообщения в публичной категории ссылаются на приватные темы?
Вы можете проверить, какие дайджесты будут отправлены для конкретного пользователя, по адресу /admin/emails/preview summary.
Что касается плагинов, у меня установлены discourse-math, discourse-canned-reply, discourse-solved и discourse-openid-connect. Я не вижу очевидной причины, по которой какой-либо из них мог бы повлиять на это. К слову, я использую Discourse 3.1.0.
Если я использую функцию предварительного просмотра сводки для пользователя, который сообщил об этой проблеме, теперь я вижу только пустой блок. Однако у меня есть скриншот его письма, на котором чётко видно, что в сводку включены посты из категории, к которой у него нет доступа.
Возможно, категория не была приватной на момент отправки письма? Или у пользователя был к ней доступ в тот момент? Вы можете проверить историю изменений прав доступа к категориям в логах действий персонала, отфильтровав представление по «изменение настроек категории».
Я быстро протестировал это локально, но не смог воспроизвести эту проблему ни с предпросмотром, ни с вручную отправленной сводкой.
Ух ты, вы все правы. Права доступа к категории действительно изменились между моментом, когда указанный пользователь получил письмо, и моментом, когда я получил его сообщение. Ничего примечательного, насколько я могу судить, и извините за шум!
Не переживайте, спасибо, что откликнулись.