Добавить скрипт для добавления пользователя в группу

Помимо темы, на которую дал ссылку @JammyDodger, было ещё несколько запросов на аналогичный функционал:

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

Я отмечаю это, чтобы убедиться, что добавление скрипта автоматизации — это лучший способ решить эту задачу, или же данный функционал должен быть реализован в основном коде групп Discourse.

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

Предполагая, что скрипт автоматизации — правильный подход, единственное препятствие заключается в том, что компонент group плагина автоматизации принимает только одну группу. Следовательно, либо компонент group нужно обновить, чтобы он принимал более одной группы, либо необходимо добавить новый компонент groups. Я добавил компонент groups в свою локальную ветку разработки для тестирования. С его помощью:

Добавить пользователя в родительскую группу, если он добавлен в любую из списка подгрупп:

Удалить пользователя из родительской группы, если он был удалён из всех перечисленных подгрупп:

Если это поможет, триггеры и скрипты находятся в плагине: automation-script-example/plugin.rb at main · scossar/automation-script-example · GitHub. Обратите внимание, что этот код предполагает, что компонент groups был добавлен в https://github.com/discourse/discourse-automation/tree/main/assets/javascripts/discourse/components/fields.

4 лайка