Drupal → Как с помощью VBO сгенерировать пользователям новый пароль и отправить его на почту
Настраиваемый экшен для VBO, генерирующий пользователям новый пароль и отправляющий его на почту:
/** * Implements hook_action_info(). */ function mymodule_action_info() { return array( 'mymodule_change_password' => array( 'type' => 'user', 'label' => 'Сменить пароль', 'configurable' => TRUE, 'triggers' => array('any'), ), ); } /** * Action form. */ function mymodule_change_password_form($context) { $form['subject'] = array( '#type' => 'textfield', '#title' => 'Тема письма', '#default_value' => 'Уведомление о смене пароля', ); $form['message'] = array( '#type' => 'textarea', '#title' => 'Сообщение', '#description' => 'Сообщение, которое будет отправлено пользователям', '#default_value' => 'Ваш пароль на сайте [site:url] изменён на [user:password]', ); return $form; } /** * Action form submit. */ function mymodule_change_password_submit($form, $form_state) { return array( 'subject' => $form_state['values']['subject'], 'message' => $form_state['values']['message'], ); } /** * Action callback. */ function mymodule_change_password($user, $context) { $new_password = user_password(8); user_save($user, array('pass' => $new_password)); $context['message'] = str_replace('[user:password]', $new_password, $context['message']); drupal_mail('system', 'mail', $user->mail, language_default(), array( 'context' => array( 'subject' => token_replace($context['subject'], array('user' => $user)), 'message' => token_replace($context['message'], array('user' => $user)), ) )); }
Полезно при миграции пользователей из других cms.
Комментарии
А можно ли использовать этот код для восстановления пароля?
И куда его вставлять? )
можно, но только зачем
вставлять в файл своего модуля
Оставить комментарий