eccube2.4xから2.11への顧客情報移行時のパスワード | φ(..)メモとして残しておこう…

eccube2.4xから2.11への顧客情報移行時のパスワード

基本的には、[dtb_customer]、[dtb_other_deliv]のデータをそのままインポート。
Navicatが便利すぎる。。。

旧バージョンの'data/cacha/mtb_constants.php'の

/** 認証用 magic */
define('AUTH_MAGIC', "**************************");

ってところの値を2.11.0の'data/config/config.php'のAUTH_MAGIC値に上書き。


2.11の'data/class/util/SC_Utils.php'

function sfIsMatchHashPassword($pass, $hashpass, $salt) {
$res = false;
if ($hashpass != '') {
if (AUTH_TYPE == 'PLAIN') {
if($pass === $hashpass) {
$res = true;
}
} else {
$hash = SC_Utils_Ex::sfGetHashString($pass, $salt);
if($hash === $hashpass) {
$res = true;
}
}
}
return $res;
}





function sfIsMatchHashPassword($pass, $hashpass, $salt) {
$res = false;
if ($hashpass != '') {
if (AUTH_TYPE == 'PLAIN') {
if($pass === $hashpass) {
$res = true;
}
} else {
if (empty($salt)) {
// 旧バージョンからの移行を考慮
$hash = sha1($pass . ":" . AUTH_MAGIC);
} else {
$hash = SC_Utils_Ex::sfGetHashString($pass, $salt);
}
if($hash === $hashpass) {
$res = true;
}
}
}
return $res;
}



に変更。(2.11.1では、変更済みっぽい。)

これで、旧バージョンのメアド・パスワードでのログインができるようになった。
ふう…大変。

今回の2.4.x→2.11.xへのバージョンアップは、ほとんどメジャーバージョンアップ。
バージョン2.11ではなく、バージョン3とすべきところを「2011年だし」という理由で2.11.xになった模様。

データベースの設計から何からだいぶ変わっているので、ただのマイナーバージョンアップだと思って作業見積りを出すと、大変な殊になります。

…で、今まさに大変なことになっている訳ですが。