Возникла необходимость одобрения администратором зарегистрированных пользователей в зависимости от выбранной роли при регистрации. Как возможно такое реализовать?
Ты говоришь использовать rules. Я пробовал создать действие.
-After saving a new user account
-проверка на роль
- Block user
при регистрации выдаёт ошибку.
PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '178-4' for key 'PRIMARY': INSERT INTO {users_roles} (uid, rid) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1); Array ( [:db_insert_placeholder_0] => 178 [:db_insert_placeholder_1] => 4 ) в функции user_save() (строка 603 в файле /home/www/hoodognik/data/www/egegia.roshoster.com/modules/user/user.module).
Дело в том что при создании пользователя у меня рулесами в зависимости от заполнения формы присваивается роль пользователю. И нужно заблокировать его. По отдельности оба действия выполняются. Но если они оба включены, то вылазиет ошибка. Не могу понять в чём дело. Подскажите кто знает.
Тогда напишите структуру. Какие роли, как они выбираются при регистрации и т.д. Чтобы воссоздать вашу среду.
Мы не знаем же как вы организовали данную схему.
а по поводу этой ошибки есть соображения?
PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '178-4' for key 'PRIMARY': INSERT INTO {users_roles} (uid, rid) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1); Array ( [:db_insert_placeholder_0] => 178 [:db_insert_placeholder_1] => 4 ) в функции user_save() (строка 603 в файле /home/www/hoodognik/data/www/egegia.roshoster.com/modules/user/user.module).
И на ваших скриншотах я увидил только одно действие. Одно оно выполняется. А у меня 2 действия.
Действие №1 - Присваиваем пользователю роль
Действие №2 - Блокируем пользователя
По отдельности они работают.
А вместе нет..
Окей. Ваш метод действительно еррорит. Проблема в Rules, которую на данный момент пофиксили в одной из dev веток, как я понял. Но проблема решилась добавлением двух отдельных действий.
Создаете\редактируете рулз.
Events
After saving a new user account
Conditions
Text comparison - Parameter: Text: [account:field-role], Matching text: Специалист (скрин)
Actions
Add user role - Parameter: User: [account], Roles: specialist
Add a variable - Parameter: Type: Integer, Value: [account:uid] - Provides variables: ID аккаунта (acc_id) (скрин)
Fetch entity by id - Parameter: Entity type: User, Identifier: [acc-id] - Provides variables: Сущность аккаунта (acc_entity) (скрин)
Block a user - Parameter: User: [acc-entity] (скрин)
Комментарии
писать свой модуль.
А попроще ничего нет?
Rules попробовать можно.
Ты говоришь использовать rules. Я пробовал создать действие.
-After saving a new user account
-проверка на роль
- Block user
при регистрации выдаёт ошибку.
PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '178-4' for key 'PRIMARY': INSERT INTO {users_roles} (uid, rid) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1); Array ( [:db_insert_placeholder_0] => 178 [:db_insert_placeholder_1] => 4 ) в функции user_save() (строка 603 в файле /home/www/hoodognik/data/www/egegia.roshoster.com/modules/user/user.module).
Проверил, работает.
Подскажи как создавал Rules пожалуйста. Чем подробнее тем лучше.
по вашей схеме и создавали.
Дело в том что при создании пользователя у меня рулесами в зависимости от заполнения формы присваивается роль пользователю. И нужно заблокировать его. По отдельности оба действия выполняются. Но если они оба включены, то вылазиет ошибка. Не могу понять в чём дело. Подскажите кто знает.
Тогда напишите структуру. Какие роли, как они выбираются при регистрации и т.д. Чтобы воссоздать вашу среду.
Мы не знаем же как вы организовали данную схему.
http://egegia.roshoster.com/user/register
При выборе пользователя специалист должна присваиваться роль "специалист"
и блокироваться пользователь.
Настройки Rules:
Ну.. Гуру Drupal... Вы где??... Помогите плиз..
Как вы организовали выбор юзера? Это филд или как?
Ну ссылочка же есть на регистрацию. Там Поле, да "Тип пользователя" Select.
хм... у меня все равно пашет
http://www.webpagescreenshot.info/i/857469-1202013112643am.png
http://www.webpagescreenshot.info/i/366205-1202013112732am.png
а по поводу этой ошибки есть соображения?
PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '178-4' for key 'PRIMARY': INSERT INTO {users_roles} (uid, rid) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1); Array ( [:db_insert_placeholder_0] => 178 [:db_insert_placeholder_1] => 4 ) в функции user_save() (строка 603 в файле /home/www/hoodognik/data/www/egegia.roshoster.com/modules/user/user.module).
И на ваших скриншотах я увидил только одно действие. Одно оно выполняется. А у меня 2 действия.
Действие №1 - Присваиваем пользователю роль
Действие №2 - Блокируем пользователя
По отдельности они работают.
А вместе нет..
Окей. Ваш метод действительно еррорит. Проблема в Rules, которую на данный момент пофиксили в одной из dev веток, как я понял. Но проблема решилась добавлением двух отдельных действий.
Создаете\редактируете рулз.
Получаем в итоге такую картину: http://www.drupal.ru/files/5_11.jpg
Все работает, ничего не еррорит. Надеюсь Вам поможет.
Большое спасибо. ) Всё работает)
Для разделения регистрации по ролям и профилей заюзал profile2 и profile2_regpath