aboutsummaryrefslogtreecommitdiff
path: root/db/migrations/1.133_tic_4072_new_password_hashing.php
blob: cc29b8c301f3cb6d2c7ff2f8618b898ec2a01432 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
Class Tic4072NewPasswordHashing extends Migration {

    public function description()
    {
        return 'hashes all existing passwords with new algo';
    }

    public function up()
    {
        $db = DBManager::get();
        $db->exec("ALTER TABLE `auth_user_md5` CHANGE `password` `password` VARBINARY( 64 ) NOT NULL DEFAULT ''");
        $hasher = UserManagement::getPwdHasher();
        $pwd_up = $db->prepare("UPDATE auth_user_md5 SET password=? WHERE user_id=?");
        foreach($db->query("SELECT user_id,password FROM auth_user_md5 WHERE auth_plugin='standard' AND password <> ''") as $row) {
            $new_pwd = $hasher->HashPassword($row['password']);
            $pwd_up->execute([$new_pwd, $row['user_id']]);
        }
    }

    public function down()
    {
        $db = DBManager::get();
        $db->exec("ALTER TABLE `auth_user_md5` CHANGE `password` `password` VARCHAR( 32 ) NOT NULL DEFAULT ''");
    }
}