Estou tentando migrar usuários de um Drupal 6 para um site Drupal 7. Meu problema é como alterar a senha do MD5 para o hash (usado pelo D7).
Você tem alguma ideia?
20
Para atualizar a senha do md5 para a hash, eu precisava usar user_hash_password () e conciliar um 'U'. Aqui está o script que eu usei para fazê-lo funcionar.
<?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();
}
}
}
Então eu corri
drush scr <name_of_the_script_file>
E funcionou.
Há uma resposta MUITO simples para isso:
Referência: Preservando Senhas do Usuário
fonte
Se alguém precisar de um script PHP independente para migrar usuários do Drupal 6 para o Drupal 7, então aqui está:
fonte
Bem, se você atualizar, suas senhas serão aprovadas. Eu acho que você provavelmente poderia olhar o código de atualização para ver como eles fazem isso.
No entanto, se você estiver apenas migrando usuários, provavelmente a abordagem mais provável seria enviar links de login únicos para todo mundo e levá-los a redefinir suas senhas.
fonte
Se eu executei isso no devel / php no site D7, descobri que só precisava:
Ambos os sites estavam no mesmo servidor da web.
fonte
$this->destination = new MigrateDestinationUser(array('md5_passwords' => TRUE)); ... $this->addFieldMapping('pass', 'source_password');