Как работает скрипт «Добавить пользователя в группу через пользовательское поле»?

Как работает скрипт «Добавить пользователя в группу через пользовательское поле пользователя» (от @leonardo)?

Я не могу заставить его работать, несмотря на несколько попыток и попытки разобраться в коде. Но это было бы действительно полезно!

Привет, Нейтан!

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

Допустим, пользовательское поле — это «любимая футбольная команда», и оно содержит список вариантов. Скрипт выполняется по повторяющемуся триггеру, поэтому пользователи в конечном итоге попадут в группу, полное имя (full name, а не просто name) которой совпадает с выбранным ими значением, если такая группа существует.

Вы можете посмотреть тесты, чтобы увидеть несколько синтетических примеров: https://github.com/discourse/discourse-automation/blob/main/spec/scripts/add_user_to_group_through_custom_field_spec.rb

Отлично! Это сработает и для полей пользователей с множественным выбором? Это может быть именно то, что я ищу.

Это имеет смысл только для полей пользователя типа «Выпадающий список», так как «Множественный выбор» позволяет выбирать несколько значений, а скрипт не поддерживает несколько групп в качестве цели. Это возможно, но немного усложнит логику. PR приветствуются :slight_smile:

Важно: никогда не используйте это с текстовым полем пользователя, так как пользователи смогут выбирать любую группу для добавления. На данный момент «Выпадающий список» — единственный разумный вариант.