Здравствуйте. Есть сайт на Drupal 7 + Ubercart 3. На нем включена регистрация пользователей, но в настройках выставлено, что учетную запись активирует администратор. Есть самописный модуль, в котором происходит программная активация пользователей. После активации пользователю приходит письмо с ссылкой для установки пароля- этот функционал работает как часы.
Но был замечен баг, что иногда после того, как пользователь задал себе пароль, вышел с сайта и пытается снова войти пароль не подходит. Я не могу понять, в чем может быть проблема, т.к. она проявляется не всегда.
Что мне следует проверить? Когда еще друпал может изменить пароль? Единственный случай, как я понимаю это если заблокировать пользователя, а потом снова активировать, но в моей случае пользователи не получают никаких писем, просто не могут авторизоваться.
Комментарии
Проблема решена.
В user_save() передавался объект пользователя целиком, из-за чего друпал считал, что пароль сменился
/*
изменения каких-нибуть данных в $user
*/
// поскольку $user->pass установлен пароль - он изменится. Для фикса достаточно сделать перед сохранением unset($user->pass):
user_save((object) array('uid' => $user->uid), (array) $user);