diff -r de56132c008d -r bdac73ed481e install/upgrade.php --- a/install/upgrade.php Sun Mar 28 21:49:26 2010 -0400 +++ b/install/upgrade.php Sun Mar 28 23:10:46 2010 -0400 @@ -46,11 +46,11 @@ $versions_flipped = array_flip($enano_versions['1.1']); if ( !isset($versions_flipped[ enano_version() ]) || $versions_flipped[ enano_version() ] < $versions_flipped['1.1.7'] ) { - $do_langimport = true; + $do_langimport = true; } if ( in_array(enano_version(), array('1.1.1', '1.1.2', '1.1.3', '1.1.4', '1.1.5')) || substr(enano_version(), 0, 3) == '1.0' ) - define('ENANO_UPGRADE_USE_AES_PASSWORDS', 1); + define('ENANO_UPGRADE_USE_AES_PASSWORDS', 1); // init languages $lang_id_list = array_keys($languages); @@ -73,13 +73,13 @@ // Version check if ( enano_version() == installer_enano_version() ) { - $ui->show_header(); - $link_home = makeUrl(get_main_page(), false, true); - echo '

' . $lang->get('upgrade_err_current_title') . '

' . - '

' . $lang->get('upgrade_err_current_body', array('mainpage_link' => $link_home)) . '

' . - '

' . $lang->get('upgrade_err_current_body_para2', array('mainpage_link' => $link_home)) . '

'; - $ui->show_footer(); - exit(); + $ui->show_header(); + $link_home = makeUrl(get_main_page(), false, true); + echo '

' . $lang->get('upgrade_err_current_title') . '

' . + '

' . $lang->get('upgrade_err_current_body', array('mainpage_link' => $link_home)) . '

' . + '

' . $lang->get('upgrade_err_current_body_para2', array('mainpage_link' => $link_home)) . '

'; + $ui->show_footer(); + exit(); } // Start session manager @@ -88,115 +88,115 @@ // Welcome page if ( !isset($_GET['stage']) ) { - $ui->show_header(); - - if ( preg_match('/1\.0/', enano_version()) ) - { - // Migrating from 1.0.x - echo '

' . $lang->get('upgrade_welcome_banshee_heading', array('enano_version' => installer_enano_version())) . '

'; - echo '

' . $lang->get('upgrade_welcome_banshee_para1') . '

'; - echo '

' . $lang->get('upgrade_welcome_banshee_para2') . '

'; - } - else - { - // Upgrading from 1.1.x/1.2.x - echo '

' . $lang->get('upgrade_welcome_caoineag_heading', array('enano_version' => installer_enano_version())) . '

'; - echo '

' . $lang->get('upgrade_welcome_caoineag_para1') . '

'; - } - - echo '
'; - echo '' . $lang->get('upgrade_welcome_btn_continue') . ' »'; - echo '
'; - - $ui->show_footer(); - exit; + $ui->show_header(); + + if ( preg_match('/1\.0/', enano_version()) ) + { + // Migrating from 1.0.x + echo '

' . $lang->get('upgrade_welcome_banshee_heading', array('enano_version' => installer_enano_version())) . '

'; + echo '

' . $lang->get('upgrade_welcome_banshee_para1') . '

'; + echo '

' . $lang->get('upgrade_welcome_banshee_para2') . '

'; + } + else + { + // Upgrading from 1.1.x/1.2.x + echo '

' . $lang->get('upgrade_welcome_caoineag_heading', array('enano_version' => installer_enano_version())) . '

'; + echo '

' . $lang->get('upgrade_welcome_caoineag_para1') . '

'; + } + + echo '
'; + echo '' . $lang->get('upgrade_welcome_btn_continue') . ' »'; + echo '
'; + + $ui->show_footer(); + exit; } if ( !$session->user_logged_in || ( $session->user_logged_in && $session->auth_level < USER_LEVEL_ADMIN ) ) { - // if we're not logged in, destroy any existing session keys in the browser - @setcookie('sid', '', time() - 86400); - - $ui->set_visible_stage($stg_login); - if ( isset($_POST['do_login']) ) - { - if ( !$session->user_logged_in ) - { - $result = $session->login_without_crypto($_POST['username'], $_POST['password'], false, USER_LEVEL_MEMBER); - } - if ( !isset($result) || ( isset($result) && $result['success']) ) - { - $result = $session->login_without_crypto($_POST['username'], $_POST['password'], false, USER_LEVEL_ADMIN); - if ( $result['success'] ) - { - header('HTTP/1.1 302 Some kind of redirect with implied no content'); - header('Location: ' . scriptPath . '/install/' . $session->append_sid('upgrade.php?stage=confirm')); - exit(); - } - } - } - - $ui->show_header(); - - ?> -

get('upgrade_login_msg_auth_needed_title'); ?>

- '; - - if ( isset($result) ) - { - echo '' . $lang->get('upgrade_login_err_failed', array('error_code' => $result['error'])) . ''; - } - - ?> -

user_logged_in ) - { - echo $lang->get('upgrade_login_msg_auth_needed_body_level2'); - } - else - { - echo $lang->get('upgrade_login_msg_auth_needed_body_level1'); - } - ?>

-

- get('upgrade_login_msg_local_auth'); ?> -

- - - - - - - - - - - - -
get('user_login_field_username'); ?>:
get('user_login_field_password'); ?>:
- -
- '; - - $ui->show_footer(); - exit(); + // if we're not logged in, destroy any existing session keys in the browser + @setcookie('sid', '', time() - 86400); + + $ui->set_visible_stage($stg_login); + if ( isset($_POST['do_login']) ) + { + if ( !$session->user_logged_in ) + { + $result = $session->login_without_crypto($_POST['username'], $_POST['password'], false, USER_LEVEL_MEMBER); + } + if ( !isset($result) || ( isset($result) && $result['success']) ) + { + $result = $session->login_without_crypto($_POST['username'], $_POST['password'], false, USER_LEVEL_ADMIN); + if ( $result['success'] ) + { + header('HTTP/1.1 302 Some kind of redirect with implied no content'); + header('Location: ' . scriptPath . '/install/' . $session->append_sid('upgrade.php?stage=confirm')); + exit(); + } + } + } + + $ui->show_header(); + + ?> +

get('upgrade_login_msg_auth_needed_title'); ?>

+ '; + + if ( isset($result) ) + { + echo '' . $lang->get('upgrade_login_err_failed', array('error_code' => $result['error'])) . ''; + } + + ?> +

user_logged_in ) + { + echo $lang->get('upgrade_login_msg_auth_needed_body_level2'); + } + else + { + echo $lang->get('upgrade_login_msg_auth_needed_body_level1'); + } + ?>

+

+ get('upgrade_login_msg_local_auth'); ?> +

+ + + + + + + + + + + + +
get('user_login_field_username'); ?>:
get('user_login_field_password'); ?>:
+ +
+ '; + + $ui->show_footer(); + exit(); } if ( isset($_GET['stage']) && @$_GET['stage'] == 'pimpmyenano' ) { - $ui->set_visible_stage($stg_upgrade); + $ui->set_visible_stage($stg_upgrade); } else if ( isset($_GET['stage']) && @$_GET['stage'] == 'postpimp' ) { - $ui->set_visible_stage($stg_finish); + $ui->set_visible_stage($stg_finish); } else { - $ui->set_visible_stage($stg_confirm); + $ui->set_visible_stage($stg_confirm); } // The real migration code @@ -204,137 +204,137 @@ if ( isset($_GET['stage']) && @$_GET['stage'] == 'pimpmyenano' ) { - /* - HOW DOES ENANO'S UPGRADER WORK? - - Versions of Enano are organized into branches and then specific versions by - version number. The upgrader works by using a list of known version numbers - and then systematically executing upgrade schemas for each version. - - When the user requests an upgrade, the first thing performed is a migration - check, which verifies that they are within the right branch. If they are not - within the right branch the upgrade framework will load a migration script - which will define a function named MIGRATE(). Performing more than one - migration in one pass will probably never be supported. How that works for - UX in 1.3.x/1.4.x I know not yet. - - After performing any necessary branch migrations, the framework will perform - any upgrades within the target branch, which is the first two parts - (delimited by periods) of the installer's version number defined in the - installer's common.php. - - enano_perform_upgrade() will only do upgrades. Not migrations. The two as - illustrated within this installer are very different. - */ - - // Do we need to run the migration first? - list($major_version, $minor_version) = explode('.', preg_replace('/^upg-/', '', enano_version())); - $current_branch = "$major_version.$minor_version"; - - list($major_version, $minor_version) = explode('.', installer_enano_version()); - $target_branch = "$major_version.$minor_version"; - - if ( $target_branch != $current_branch ) - { - // First upgrade to the latest revision of the current branch - enano_perform_upgrade($current_branch); - // Branch migration could be tricky and is often highly specific between - // major branches, so just include a custom migration script. - require(ENANO_ROOT . "/install/schemas/upgrade/migration/{$current_branch}-{$target_branch}.php"); - $result = MIGRATE(); - if ( !$result ) - { - echo 'Migration failed, there should be an error message above.'; - $ui->show_footer(); - exit; - } - } - - // Do the actual upgrade - enano_perform_upgrade($target_branch); - - // Mark as upgrade-in-progress - setConfig('enano_version', 'upg-' . installer_enano_version()); - - ?> -

- get('upgrade_msg_schema_complete_title'); ?> -

-

- get('upgrade_msg_schema_complete_body'); ?> -

-
- -

- -

-
- show_footer(); + exit; + } + } + + // Do the actual upgrade + enano_perform_upgrade($target_branch); + + // Mark as upgrade-in-progress + setConfig('enano_version', 'upg-' . installer_enano_version()); + + ?> +

+ get('upgrade_msg_schema_complete_title'); ?> +

+

+ get('upgrade_msg_schema_complete_body'); ?> +

+
+ +

+ +

+
+ ' . $lang->get('upgrade_err_post_not_available') . '

'; - $ui->show_footer(); - $db->close(); - exit(); - } - - function stg_load_files() - { - if ( !@include( ENANO_ROOT . "/install/includes/payload.php" ) ) - return false; - - return true; - } - - echo '

' . $lang->get('upgrade_post_status_title') . '

'; - echo '

' . $lang->get('upgrade_post_status_body') . '

'; - - start_install_table(); - run_installer_stage('load', $lang->get('install_stg_load_title'), 'stg_load_files', $lang->get('install_stg_load_body'), false); - run_installer_stage('importlang', $lang->get('install_stg_importlang_title'), 'stg_lang_import', $lang->get('install_stg_importlang_body')); - run_installer_stage('flushcache', $lang->get('upgrade_stg_flushcache_title'), 'stg_flush_cache', $lang->get('upgrade_stg_flushcache_body')); - run_installer_stage('setversion', $lang->get('upgrade_stg_setversion_title'), 'stg_set_version', $lang->get('upgrade_stg_setversion_body')); - close_install_table(); - - // demote privileges - $session->logout(USER_LEVEL_ADMIN); - - $link_home = makeUrl(get_main_page(), false, true); - echo '

' . $lang->get('upgrade_post_status_finish_title') . '

'; - echo '

' . $lang->get('upgrade_post_status_finish_body', array('mainpage_link' => $link_home)) . '

'; + // verify version + if ( enano_version() != 'upg-' . installer_enano_version() ) + { + echo '

' . $lang->get('upgrade_err_post_not_available') . '

'; + $ui->show_footer(); + $db->close(); + exit(); + } + + function stg_load_files() + { + if ( !@include( ENANO_ROOT . "/install/includes/payload.php" ) ) + return false; + + return true; + } + + echo '

' . $lang->get('upgrade_post_status_title') . '

'; + echo '

' . $lang->get('upgrade_post_status_body') . '

'; + + start_install_table(); + run_installer_stage('load', $lang->get('install_stg_load_title'), 'stg_load_files', $lang->get('install_stg_load_body'), false); + run_installer_stage('importlang', $lang->get('install_stg_importlang_title'), 'stg_lang_import', $lang->get('install_stg_importlang_body')); + run_installer_stage('flushcache', $lang->get('upgrade_stg_flushcache_title'), 'stg_flush_cache', $lang->get('upgrade_stg_flushcache_body')); + run_installer_stage('setversion', $lang->get('upgrade_stg_setversion_title'), 'stg_set_version', $lang->get('upgrade_stg_setversion_body')); + close_install_table(); + + // demote privileges + $session->logout(USER_LEVEL_ADMIN); + + $link_home = makeUrl(get_main_page(), false, true); + echo '

' . $lang->get('upgrade_post_status_finish_title') . '

'; + echo '

' . $lang->get('upgrade_post_status_finish_body', array('mainpage_link' => $link_home)) . '

'; } else { - ?> -

get('upgrade_confirm_title'); ?>

-

get('upgrade_confirm_body', array('enano_version' => installer_enano_version())); ?>

- - -
- get('upgrade_confirm_warning_langimport'); ?> -
- -
- - -
- +

get('upgrade_confirm_title'); ?>

+

get('upgrade_confirm_body', array('enano_version' => installer_enano_version())); ?>

+ + +
+ get('upgrade_confirm_warning_langimport'); ?> +
+ +
+ + +
+ show_footer();