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

Прислано: AntNick

сб, 08/01/2011 - 16:58

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

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

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

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

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

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

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

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Nikit в вс, 09/01/2011 - 05:04.

Правильно.


Опубликовано DDDDD099 в пн, 21/02/2011 - 12:04.

"Nikit" написал(а):

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

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


Опубликовано mac2000 в ср, 18/05/2011 - 11:12.

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

Имею роль: seller

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

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


Опубликовано DDDDD099 в пт, 11/11/2011 - 09:24.

А если ролей много - прийдется создавать столько-же правил -накладно както.


Новое на сайте