Я пытаюсь перенести пользователей с Drupal 6 на сайт Drupal 7. Моя проблема в том, как сменить пароль с MD5 на хеш (используется D7).
Есть ли у вас какие-либо идеи?
20
Чтобы обновить пароль md5 до хешированного, мне нужно было использовать user_hash_password () и составить 'U'. Вот скрипт, который я использовал, чтобы он работал.
<?php
require_once DRUPAL_ROOT . '/' . variable_get('password_inc', 'includes/password.inc');
$res = db_query('select * from drupal.users');
if($res) {
foreach ($res as $result) {
$hashed_pass = user_hash_password($result->pass, 11);
if ($hashed_pass) {
$hashed_pass = 'U' . $hashed_pass;
db_update('users')->fields(array('pass' => $hashed_pass))->condition('uid', $result->uid)->execute();
}
}
}
Потом я побежал
drush scr <name_of_the_script_file>
И это сработало.
Существует ОЧЕНЬ простой ответ на это:
Справка: сохранение пользовательских паролей
источник
Если кому-то нужен отдельный PHP-скрипт для миграции пользователей с Drupal 6 на Drupal 7, то вот он:
источник
Что ж, если вы обновитесь, вы выйдете со своими паролями ОК. Я думаю, вы могли бы посмотреть на код обновления, чтобы увидеть, как они это делают.
Однако, если вы просто мигрируете пользователей, вероятно, наиболее вероятным подходом будет просто разослать всем одноразовые ссылки для входа и заставить их сбросить свои пароли.
источник
Если я запустил это из devel / php на сайте D7, я обнаружил, что мне нужно только:
Оба сайта были на одном веб-сервере.
источник
$this->destination = new MigrateDestinationUser(array('md5_passwords' => TRUE)); ... $this->addFieldMapping('pass', 'source_password');