Мне нужно найти способ автоматически отключать уведомления о категории, когда пользователь покидает группу.
Чего я хочу добиться
Когда пользователь вступает в группу, он подписывается на связанную с группой категорию (это работает через «Настройки уведомлений по умолчанию для категории группы»). [ Я уже реализовал это с помощью плагина Custom Wizard]
Когда пользователь покидает группу, связанная с ним категория должна автоматически быть отключена, чтобы он перестал получать уведомления и дайджесты на почту.
В идеале это должно работать полностью автоматически, без ручного вмешательства.
Мои вопросы
Есть ли встроенный способ (без написания кода или вызовов API) отключить уведомления о категории, когда пользователь покидает группу? Возможно ли добавить событие «Пользователь покинул группу» в качестве триггера в плагине автоматизации Discourse? Есть ли обходные пути, не требующие ручного вмешательства администратора?
Буду рад узнать, как другие решали эту задачу, или есть ли запрос на новую функцию, который находится в разработке, чтобы добавить такую возможность.
Спасибо, @Jagster.
Да, я заметил, что после выхода из группы доступ отсутствует.
Но при этом категория всё ещё отображается на стороне пользователя, а последние посты — во вкладке «Последнее».
Мне просто нужно отключить отображение этой категории в этих местах.
Я ищу автоматизированное решение для такого сценария.
Кажется, вам, возможно, понадобится пользовательская автоматизация.
Хотя такая идея могла бы стать приятным дополнением к настройкам группы, например, в виде переключателя при выходе из группы, чтобы отменить/заглушить некоторые изменения, которые были применены изначально (при вступлении в группу).
Не уверен, но, возможно, вы сможете использовать пользовательского мастера, если его можно автоматически запускать, или, возможно, в связке с автоматизацией. Я бы уточнил это в Pavilion.
Если речь о втором, то я бы сказал, что это на самом деле #баг (или точнее: реализация не подходит для этого случая, хотя логично было бы ожидать обратного).
Когда я устанавливаю группу X на отслеживание категории Y и становлюсь участником этой группы, я действительно автоматически начинаю отслеживать категорию Y. Категория Y копируется в мои «отслеживаемые» категории. Не остаётся никаких следов того, как она туда попала: мы не знаем, была ли она там, потому что я добавил её ранее, или потому что я являюсь участником группы.
Когда я покидаю группу X, я продолжаю отслеживать категорию Y. Категория не удаляется из моих «отслеживаемых» категорий, как можно было бы ожидать.
Изменение этой реализации потребует значительных усилий, поэтому, думаю, сейчас это стоит реализовать в виде плагина. Достаточно добавить обработчик события :user_removed_from_group при удалении из группы, получить соответствующие категории и удалить их из настроек пользователя.
Есть ли шанс, что это можно реализовать без поддержки ядра?
Уже существует ли какая-либо реализованная система, которую можно было бы использовать для отслеживания действий пользователей в отношении уровней уведомлений?
Спасибо, @Jagster.
На самом деле я хотел бы реализовать это для большого форума. Я просто хочу держать всё в порядке, и каждый должен видеть темы в соответствии с выбранными группами.
Я согласен с этим подходом — он менее жесткий, чем традиционная бинарная модель «доступ / нет доступа».
Часто полезно, когда информация доступна для тех, кто её ищет, но при этом остаётся хорошо заметной или уведомляющей только для избранной группы людей. В Discourse это довольно легко реализовать, но трудно отменить — я полагаю, что именно это вы и хотите сделать.
Пользователи, конечно, могут сделать это самостоятельно, но обычно они не очень эффективны в этом.
К сожалению, плагин Custom Wizard Plugin 🧙 требует взаимодействия пользователя для запуска подобных действий. Для автоматического снятия статуса «подписан» у тех, кто больше не входит в группу, потребуется автоматизация (вероятно, кастомная).
Или же это должно быть оформлено как запрос на изменение основного поведения системы. Уже существует несколько подобных запросов на добавление функций.
Огромное спасибо всем, кто откликнулся, особенно @Jagster, @NateDhaliwal, @Heliosurge, @thoka и @nathank за полезные идеи! После размышлений я бы очень хотел видеть возможность автоматического отключения уведомлений для категорий, когда пользователь покидает группу.
Подскажите, пожалуйста, как лучше официально запросить эту функцию для Discourse? Есть ли специальное место для подачи таких предложений или лучше начать обсуждение, чтобы запустить процесс?