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

**URL:** https://meta.discourse.org/t/how-does-the-add-user-to-group-through-user-custom-field-script-work/241612
**Category:** Support
**Tags:** automation
**Created:** [26.Сентябрь.2022 01:28:15 UTC](https://meta.discourse.org/t/how-does-the-add-user-to-group-through-user-custom-field-script-work/241612 "2022-09-26T01:28:15Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [26.Сентябрь.2022 01:28:15 UTC](https://meta.discourse.org/t/how-does-the-add-user-to-group-through-user-custom-field-script-work/241612/1 "2022-09-26T01:28:15Z")

</div>

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

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

---

<div class="post-metadata">

### Author: ![leonardo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/leonardo/32/228634_2.png) [@leonardo](https://meta.discourse.org/u/leonardo)
#### Post date: [26.Сентябрь.2022 01:41:03 UTC](https://meta.discourse.org/t/how-does-the-add-user-to-group-through-user-custom-field-script-work/241612/2 "2022-09-26T01:41:03Z")

</div>

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

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

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

Вы можете посмотреть тесты, чтобы увидеть несколько синтетических примеров: [https://github.com/discourse/discourse-automation/blob/main/spec/scripts/add\_user\_to\_group\_through\_custom\_field\_spec.rb](https://github.com/discourse/discourse-automation/blob/main/spec/scripts/add_user_to_group_through_custom_field_spec.rb)

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [26.Сентябрь.2022 01:44:46 UTC](https://meta.discourse.org/t/how-does-the-add-user-to-group-through-user-custom-field-script-work/241612/3 "2022-09-26T01:44:46Z")

</div>

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

---

<div class="post-metadata">

### Author: ![leonardo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/leonardo/32/228634_2.png) [@leonardo](https://meta.discourse.org/u/leonardo)
#### Post date: [26.Сентябрь.2022 01:54:36 UTC](https://meta.discourse.org/t/how-does-the-add-user-to-group-through-user-custom-field-script-work/241612/4 "2022-09-26T01:54:36Z")

</div>

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

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

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [29.Апрель.2023 12:21:11 UTC](https://meta.discourse.org/t/how-does-the-add-user-to-group-through-user-custom-field-script-work/241612/9 "2023-04-29T12:21:11Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
