diff --git a/include/ajax.upgrader.php b/include/ajax.upgrader.php index 41100b9d38ebb37716fc7cdb08a22b8a9285321d..fa0b50a99c9c8271caf96e927c6032bbde4b9eee 100644 --- a/include/ajax.upgrader.php +++ b/include/ajax.upgrader.php @@ -39,12 +39,10 @@ class UpgraderAjaxAPI extends AjaxController { exit; } - if($upgrader->getNumPendingTasks()) { - if($upgrader->doTasks() && !$upgrader->getNumPendingTasks() && $ost->isUpgradePending()) { - //Just reporting done...with tasks - break in between patches with scripted tasks! - Http::response(201, "TASKS DONE!"); - exit; - } + if($upgrader->getNumPendingTasks() && $upgrader->doTasks()) { + //More pending tasks - doTasks returns the number of pending tasks + Http::response(200, $upgrader->getNextAction()); + exit; } elseif($ost->isUpgradePending() && $upgrader->isUpgradable()) { $version = $upgrader->getNextVersion(); if($upgrader->upgrade()) { @@ -55,7 +53,7 @@ class UpgraderAjaxAPI extends AjaxController { } elseif(!$ost->isUpgradePending()) { $upgrader->setState('done'); session_write_close(); - Http::response(201, "DONE!"); + Http::response(201, "We're done!"); exit; } diff --git a/include/class.upgrader.php b/include/class.upgrader.php index de11aee3a2e6f054d334205b9538fe73be2b0907..1b490a71dfa91a03e9cd3ddadc86d5b320e0004e 100644 --- a/include/class.upgrader.php +++ b/include/class.upgrader.php @@ -196,7 +196,7 @@ class Upgrader extends SetupWizard { } } - return (!$this->getPendingTasks()); + return $this->getPendingTasks(); } function upgrade() { @@ -261,6 +261,10 @@ class Upgrader extends SetupWizard { $tasks[] = array('func' => 'migrateSessionFile2DB', 'desc' => 'Transitioning to db-backed sessions'); break; + case '98ae1ed2-e342f869': //v1.6 RC1-4 -> v1.6 RC5 + $task[] = array('func' => 'migrateAPIKeys', + 'desc' => 'Migrating API keys to a new table'); + break; } //Check IF SQL cleanup is exists. @@ -310,5 +314,24 @@ class Upgrader extends SetupWizard { osTicketSession::write(session_id(), session_encode()); return 0; } + + function migrateAPIKeys($taskId) { + + $res = db_query('SELECT api_whitelist, api_key FROM '.CONFIG_TABLE.' WHERE id=1'); + if(!$res || !db_num_rows($res)) + return 0; //Reporting success. + + list($whitelist, $key) = db_fetch_row($res); + + $ips=array_filter(explode(',', ereg_replace(' ', '', $whitelist))); + foreach($ips as $ip) { + $sql='INSERT INTO '.API_KEY_TABLE.' SET created=NOW(), updated=NOW(), isactive=1 ' + .',ipaddr='.db_input($ip) + .',apikey='.db_input(strtoupper(md5($ip.md5($key)))); + db_query($sql); + } + + return 0; + } } ?>