install/schemas/upgrade/1124.php
author Dan Fuhry <dan@enanocms.org>
Thu, 28 Oct 2010 03:05:31 -0400
changeset 1308 f9bee9b125ee
parent 1259 49db7495f6b8
permissions -rw-r--r--
Parser updates. Added the "styled" keyword to wikitables to allow them to be styled using the current theme's standard table skinning, and changes to how the image tag parser decides how to display an image (framed, inline or raw).

<?php

// Migrate passwords to the new encryption scheme

global $db, $session, $paths, $template, $plugins; // Common objects
require_once(ENANO_ROOT . '/includes/hmac.php');

@set_time_limit(0);

$q = $db->sql_query('UPDATE ' . table_prefix . "users SET old_encryption = 2 WHERE user_id > 1 AND old_encryption = 0;");
if ( !$q )
  $db->_die();

$q = $db->sql_query('SELECT user_id, password FROM ' . table_prefix . "users WHERE user_id > 1 AND old_encryption = 2;");
if ( !$q )
  $db->_die();

while ( $row = $db->fetchrow($q) )
{
  $password = $session->pk_decrypt($row['password']);
  if ( empty($password) )
  {
    global $ui;
    echo '<p>1.1.5-1.1.6 migration script: ERROR: bad password returned from $session->pk_decrypt()</p>';
    $ui->show_footer();
    exit;
  }
  $hmac_secret = hexencode(AESCrypt::randkey(20), '', '');
  $password = hmac_sha1($password, $hmac_secret);
  $e = $db->sql_query('UPDATE ' . table_prefix . "users SET password = '{$password}', password_salt = '{$hmac_secret}', old_encryption = 0 WHERE user_id = {$row['user_id']};");
  if ( !$e )
    $db->_die();
}