День добрый!
Продолжаю исследовать RULES . Сейчас стоить задача регистрировать пользователей, которые крепятся к ноде (apps) через поле field_collection. Завожу правило. Создаю LOOP перебора элементов из field_collection назначаю действие создать сущность пользователь из этого перебора полей. И вроде все ОК, но создается только 1 пользователь. Почему то перебора по элементам не происходит. А еще не дает создать действие Сохранить сущность - entity created
Привожу код правила
"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" } }
}
}
]
}
}
]
}
}
Подскажите пожалуйста что не так делаю.
Спасибо!
Комментарии
Сохраняйте каждого пользователя, в каждой итерации.
Не знаю, что произошло, но сейчас все пошло нормально. Удалось добавить сохранение entity_created хитрым способом. Создал это действие без цикла. Потом добавил цикл перебора полей в field_collection поставил действие создать пользователя, а действие сохранить просто перенес под цикл.
http://prntscr.com/ikt1tw
Да пользователей создает. Но не могу через Правила добраться до поля Пароль, хотя это поле присутствует в форме регистрации пользователя. Логин дает заполнить, а пароль нет. И таким образом, создается пользователь, но без пароля, т.е. в систему такой пользователь зайти не может пароля то нет. Может не правильное действие выбираю.?
Вы не сможете установить пароль через Rules. Во всяком случае, без дополнительных плясок. Да и не безопасно это ниразу.
Вам стоит поискать какое-либо решению по автоматической генерации паролей при создании учетки.
Я так и понял.
У меня стоит модуль автоматической генерации паролей, но отключен потому что для нормальных пользователей нужно что бы они сами вводили пароль при регистрации.
А этих по списку нужно регистрировать временно, что бы дать доступ к закрытым материалам, а потом они будут удаляться чистится из системы, они да же знать не будут, что им ЛК создавался. Хорошо попляшу с бубном.
Спасибо Вам
Реализация данного кейса вряд ли обойдется без программирования.
Рулзы - они только усложняют все это. В действительности, достаточно просто все реализовывается в небольшом модельке.
В любом случае - успехов в решении!
)) решил просто передаю переменную pass сразу в хеше (сгенерил хеш отдельно для нужного пароля) он не важен пароль и для всех таких пользователей будет один
$entity_created->pass='$S$C5TLNVghR3WjNiURWVIOwB.YVlRD56sHdBg3Uzl7lkoKQgBG6SmX';