Выбор роли при регистрации в D7

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

Аватар пользователя AntNick AntNick 8 января 2011 в 19:58

Сижу борюсь вот с Drupal 7, точнее не с ним самим, а с "изобилием" и "стабильностью" модулей на него Smile Но упорно хочу сделать новый сайт именно на 7ке)
Я вас еще наверняка замучаю своими вопросами, а пока вот решил поделиться своим решением. Возможно, об этом все и так все знали, но вдруг все-таки кому-нибудь поможет)

В общем, дело обстоит так. Есть роль обычного юзера, а есть роль расширенная. Пользователь может выбирать, нужна ли ему эта роль. Есть модуль Auto Assign Role и как бы никаких проблем. Но работать он у меня так и не захотел, поэтому и начал искать обходные пути.

В результате, обошелся новым полем типа "галочка" в профиле пользователя и модулем Rules. А теперь поподробнее:

1. Создал новое Логическое поле в admin/config/people/accounts/fields с виджетом "Выключатель да/нет". И настроил на отображение его при регистрации. Получилось что-то типа "Роль блаблабла []". Если отметил - получил роль. Нет - получил обычного зарегистрированного юзера.

2. Назначаем роль. А теперь в игру вступает модуль Rules, которым я до этого как-то не пользовался, но прикольный оказывается Smile
Так вот, в нем создал новое правило с событиями After saving a new user account, After updating an existing user account (2ое если юзер надумает поставить эту галочку потом в редактировании профиля).
Потом добавил элемент (Conditions) - Data comparison, где выбрал свое поле и поставил галочку Data value.
И, наконец, добавляем Действие Add user role, где и отмечаем нужную нам роль Smile

Теперь, когда пользователь регистрируется, если он отметил галочку, то получает роль, если нет, то нет Smile
Не знаю, насколько так правильно, но вроде работает Smile

Благодарю за внимание Smile

Комментарии

Аватар пользователя DDDDD099 DDDDD099 21 февраля 2011 в 15:04

"Nikit" wrote:
Есть модуль Auto Assign Role и как бы никаких проблем. Но работать он у меня так и не захотел, поэтому и начал искать обходные пути.

role_delegation - работает.Но ваш вариант перспективнее. Жаль мультистеп на семерке пока выдает ошибку.

Аватар пользователя mac2000 mac2000 18 мая 2011 в 15:12

Только что решал ту же проблему - но обошелся без галочек

Имею роль: seller

Создал псевдоним register_seller <-> user/register

В rules - смотрю на Data to compare: [site:current-page:url], Data value: register_seller

Аватар пользователя Sadchenko Sadchenko 9 июля 2012 в 6:51

Help Me!
чтото я не разберусь, как ты сделал зависимость!
Я хочу сделать такую зависимость, где будет две радиокнопки и в зависимости от того какую выберет юзер, под такой ролью его и зарегит

Создал поле, вывел его на странице регистрации, Установил Rules, залез в события Rules. Два часа клацал настройки всякие на Инглиш языке, но нихрена не получается