Ich versuche, Benutzer von einer Drupal 6-Site auf eine Drupal 7-Site zu migrieren. Mein Problem ist, wie man sein Passwort von MD5 auf das Hash-Passwort (von D7 verwendet) ändert.
Hast du irgendeine Idee?
20
Um das MD5-Passwort auf das Hash-Passwort zu aktualisieren, musste ich user_hash_password () verwenden und ein 'U' setzen. Hier ist das Skript, mit dem ich es erstellt habe.
<?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();
}
}
}
Dann rannte ich
drush scr <name_of_the_script_file>
Und es hat funktioniert.
Darauf gibt es eine sehr einfache Antwort:
Referenz: Benutzerkennwörter beibehalten
quelle
Wenn jemand ein eigenständiges PHP-Skript benötigt, um Benutzer von Drupal 6 auf Drupal 7 zu migrieren, dann ist dies hier:
quelle
Na wenn du Upgrade durchführen, geben Sie Ihre Passwörter ein. Sie könnten sich wahrscheinlich den Upgrade-Code ansehen, um zu sehen, wie sie das tun.
Wenn Sie jedoch nur Benutzer migrieren, besteht der wahrscheinlichste Ansatz darin, nur einmalige Anmeldelinks an alle Benutzer zu senden und diese zum Zurücksetzen ihrer Kennwörter zu bewegen.
quelle
Wenn ich dies von devel / php auf der D7-Site ausgeführt habe, habe ich festgestellt, dass ich nur Folgendes brauchte:
Beide Sites befanden sich auf demselben Webserver.
quelle
$this->destination = new MigrateDestinationUser(array('md5_passwords' => TRUE)); ... $this->addFieldMapping('pass', 'source_password');