Здравствуйте!
Необходимо сделать так, чтобы сразу после заполнения регистрационной формы и нажатия кнопки "зарегистрироваться", пользователь становился авторизованным (конечно при условии что его пароль удовлетворяет и имя пользователя еще не занято).
Форма регистрации выводится на странице моего модуля, я ее вызываю через drupal_get_form('user_register');
Целый час гуглил, нигде нет даже намека на решение, или я неправильно гуглил?
Комментарии
Здесь /admin/user/settings эту строчку видели? «Требуется подтверждение по электронной почте, когда посетитель создает учетную запись»
Видел, и что? Галочку естественно снял.
После нажатия на "Зарегистрироваться" запись о новом пользователе в таблицу "users" делается, но $user->uid остается равным 0, то есть пользователь остается анонимным, авторизации не происходит.
Значит проблема в вашем модуле
как вариант можно сделать после прохождения регистрации в своем модуле
$user = user_load($uid); // $uid - id нового пользователя
но это так себе решение
Именно так и сделал, но решение мне тоже не нравится.
А! Значительно лучше будет, если мы знаем логин и пароль, запустить от его лица drupal_execute на форму логина. Тогда стартуют все хуки как при обычном логине.
Я не уверен заработает ли, но стоит попробовать.
Да уж, если еще полгода назад почти на все вопросы по Друпалу я отвечал "пишите модуль", то сейчас чаще отвечаю "посмотрите на модуль XXX".
В общем, посмотрите на модуль LoginToboggan: