Пользователю на почту вместо пароля приходит !password.

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

Аватар пользователя VasyOK VasyOK 7 ноября 2010 в 10:14

C днем Годовщины Великой Октябрьской социалистической революции, форумчане!
(А вчера был Всемирный день мужчин).

Казалось бы стандартная функция Drupal, но и тут проблемы.

Пользователь регистрируется на сайте. Вводит логин, пароль. Но чтобы пользователь после регистрации стал активным требуется подтверждение администратора.

Администратор в его статусе выбирает "Активный", пользователю приходит письмо, но вместо пароля пользователю отсылается слово !password.

Как сделать чтобы после активации,пользователю отсылался пароль.

Комментарии

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 7 ноября 2010 в 13:33

Видимо, ошибка в переводе. Задайте поиск по строкам перевода, указав в качестве паттерна кусок из текста письма, которое отправляется пользователю после регистрации. Скорее всего, там в тексте либо неправильный плейсхолдер (например, !password вместо password), либо допущена ошибка в самом плейсхолдере (где-то вкрались кириллические буквы, хотя должна быть латиница). В первом случае вы найдёте ошибку, сравнив английский текст и текст перевода. Во втором — сможете исправить, если точно наберёте текст латиницей.

Аватар пользователя VasyOK VasyOK 7 ноября 2010 в 14:58

Там прямо написано
"Допустимые переменные: !username, !site, !password, !uri, !uri_brief, !mailto, !date..."

И на английском и на русском эти переменные одинаковые.

!username посылается на почту как надо, а !password - нет

Аватар пользователя VasyOK VasyOK 7 ноября 2010 в 19:42

Если пользователя создает администратор, то пароль отсылается как надо. А если администратор активирует пользователя то нет...

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 8 ноября 2010 в 1:02

"VasyOK" wrote:
А если администратор активирует пользователя то нет...

Если админ активирует юзера, то это означает, что юзер сам зарегистрировался, админ только подтверждает регистрацию. Включай логику

Аватар пользователя VasyOK VasyOK 8 ноября 2010 в 9:03

Речь идет не о том что делает администратор, а о том какие письма посылает Drupal. А можна переменную !password задать глобально, для всех писем исходящих с сайта, неважно по какой теме эти письма посланы, регистрации или активации.

Аватар пользователя VasyOK VasyOK 8 ноября 2010 в 20:02

Я тут трезво посмотрел, все таки переменная !password доступна и при активации пользователя. Там так и написано.

Аватар пользователя VasyOK VasyOK 8 ноября 2010 в 21:59

Проблема в том что если
1) пользователь регистрируется на сайте
2) пользователя создает администратор
...пользователю приходит на почту пароль как надо.

3) пользователю изменяем статус на "активный"
...письмо приходит, но вместо пароля "!password"

Аватар пользователя geophysicist geophysicist 6 декабря 2010 в 14:23

Проблема есть. Задача у меня немного другая, но суть та же.
Нашлось и решение.
Суть проблемы лежит в ядре друпала в функции user_register_submit(). Там написано следующее:

$admin = user_access('administer users');
...
if (!variable_get('user_email_verification', TRUE) || $admin) {
$pass = $form_state['values']['pass'];
}
else {
$pass = user_password();
};
То есть если админ создает пользователя то пароль не генерится.
Решение. В своем модуле в form_alter я добавил к форме user_register валидатор, в котором делаю:
$form_state['values']['pass'] = user_password();
Можно немного по-другому. Но все же работает