Динамические группы в Discourse

:information_source: Краткое описание Автоматическое управление членством в группах
:hammer_and_wrench: Ссылка на репозиторий https://github.com/communiteq/discourse-dynamic-groups
:open_book: Руководство по установке Как установить плагины в Discourse

:warning: Этот плагин следует считать бета-версией :warning:

Возможности

Сообщества Discourse часто нуждаются в автоматизации членства в группах на основе таких условий, как наличие значков или текущего членства в других группах.

Типичные сценарии использования включают:

  • Пользователи, не входящие в группу ‘subscribers’

  • Пользователи, не заблокированные для публикации в Marketplace

  • Пользователи с уровнем доверия TL0 или TL1, но не TL2

  • Пользователи, завершившие обучение новых участников, или состоящие в сообществе более года

  • Пользователи, принадлежащие к client_1, client_2 или client_3, и не являющиеся стажёрами

Ранее для решения этой задачи требовались пользовательские скрипты, периодически синхронизирующие группы. Плагин Dynamic Groups устраняет эту необходимость.

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

Примеры:

  • Пользователи, не входящие в группу ‘subscribers’
    trust_level_0 AND NOT subscribers

  • Пользователи, не заблокированные для публикации в Marketplace
    trust_level_2 AND NOT banned_users

  • Пользователи с уровнем доверия TL0 или TL1, но не TL2
    trust_level_0 AND NOT trust_level_2

  • Пользователи, завершившие обучение новых участников или состоящие в сообществе более года
    badge:certified OR badge:anniversary

  • Пользователи, принадлежащие к client_1, client_2 или client_3, и не являющиеся стажёрами
    (client_1 OR client_2 OR client_3) AND NOT interns

Настройка

После установки и включения плагина в интерфейсе администратора групп появится новая вкладка:

При вводе или обновлении булева выражения системе потребуется несколько моментов для наполнения группы подходящими пользователями. С этого момента членство в группе будет автоматически обновляться при изменении статуса пользователя.

Важно:
При определении правила группа помечается как автоматическая, что отключает возможность ручного изменения состава. Чтобы вернуть группу к ручному управлению, просто очистите поле выражения. Существующие участники останутся в группе, и вы снова получите возможность управлять составом вручную.

27 лайков