Создание пользователей из field collection с использованием правил

Главные вкладки

Аватар пользователя vert4 vert4 28 февраля 2018 в 10:17

День добрый!
Продолжаю исследовать RULES . Сейчас стоить задача регистрировать пользователей, которые крепятся к ноде (apps) через поле field_collection. Завожу правило. Создаю LOOP перебора элементов из field_collection назначаю действие создать сущность пользователь из этого перебора полей. И вроде все ОК, но создается только 1 пользователь. Почему то перебора по элементам не происходит. А еще не дает создать действие Сохранить сущность - entity created

Привожу код правила

{ "rules_user_register" : {
    "LABEL" : "\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u0437\u0430\u044f\u0432\u043a\u0435",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "node_update--app" : { "bundle" : "app" } },
    "DO" : [
      { "LOOP" : {
          "USING" : { "list" : [ "node:field-list" ] },
          "ITEM" : { "list_item" : "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430" },
          "DO" : [
            { "entity_create" : {
                "USING" : {
                  "type" : "user",
                  "param_field_surname" : [ "list-item:field-app-fam" ],
                  "param_field_name" : [ "list-item:field-app-name" ],
                  "param_field_patronymic" : [ "list-item:field-app-patronimic" ],
                  "param_field_consent" : { "value" : { "1" : "1" } },
                  "param_field_offer" : { "value" : { "1" : "1" } },
                  "param_field_phone" : "+79998887766",
                  "param_name" : "[node:nid][list-item:field-app-num]xtern.ru",
                  "param_mail" : "[node:nid][list-item:field-app-num]xtern.ru"
                },
                "PROVIDE" : { "entity_created" : { "entity_created" : "\u0421\u043e\u0437\u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c" } }
              }
            }
          ]
        }
      }
    ]
  }
}

Подскажите пожалуйста что не так делаю.
Спасибо!

Лучший ответ

Аватар пользователя vert4 vert4 28 февраля 2018 в 20:54

)) решил просто передаю переменную pass сразу в хеше (сгенерил хеш отдельно для нужного пароля) он не важен пароль и для всех таких пользователей будет один

$entity_created->pass='$S$C5TLNVghR3WjNiURWVIOwB.YVlRD56sHdBg3Uzl7lkoKQgBG6SmX';

Комментарии

Аватар пользователя vert4 vert4 28 февраля 2018 в 12:34

Не знаю, что произошло, но сейчас все пошло нормально. Удалось добавить сохранение entity_created хитрым способом. Создал это действие без цикла. Потом добавил цикл перебора полей в field_collection поставил действие создать пользователя, а действие сохранить просто перенес под цикл.
http://prntscr.com/ikt1tw

Аватар пользователя vert4 vert4 28 февраля 2018 в 15:04

Да пользователей создает. Но не могу через Правила добраться до поля Пароль, хотя это поле присутствует в форме регистрации пользователя. Логин дает заполнить, а пароль нет. И таким образом, создается пользователь, но без пароля, т.е. в систему такой пользователь зайти не может пароля то нет. Может не правильное действие выбираю.?

Аватар пользователя bumble bumble 28 февраля 2018 в 15:07

Вы не сможете установить пароль через Rules. Во всяком случае, без дополнительных плясок. Да и не безопасно это ниразу.

Вам стоит поискать какое-либо решению по автоматической генерации паролей при создании учетки.

Аватар пользователя vert4 vert4 28 февраля 2018 в 15:37

Я так и понял.
У меня стоит модуль автоматической генерации паролей, но отключен потому что для нормальных пользователей нужно что бы они сами вводили пароль при регистрации.
А этих по списку нужно регистрировать временно, что бы дать доступ к закрытым материалам, а потом они будут удаляться чистится из системы, они да же знать не будут, что им ЛК создавался. Хорошо попляшу с бубном.
Спасибо Вам

Аватар пользователя bumble bumble 28 февраля 2018 в 15:40

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

В любом случае - успехов в решении!

Аватар пользователя vert4 vert4 28 февраля 2018 в 20:54

)) решил просто передаю переменную pass сразу в хеше (сгенерил хеш отдельно для нужного пароля) он не важен пароль и для всех таких пользователей будет один

$entity_created->pass='$S$C5TLNVghR3WjNiURWVIOwB.YVlRD56sHdBg3Uzl7lkoKQgBG6SmX';