From: <al...@us...> - 2008-10-23 00:02:00
|
Revision: 752 http://sciret.svn.sourceforge.net/sciret/?rev=752&view=rev Author: alpeb Date: 2008-10-22 22:06:24 +0000 (Wed, 22 Oct 2008) Log Message: ----------- ammended upgrade to work with new framework Modified Paths: -------------- trunk/actions/Upgrade.php trunk/setup/upgrade_1.9.0.sql Modified: trunk/actions/Upgrade.php =================================================================== --- trunk/actions/Upgrade.php 2008-10-22 21:16:33 UTC (rev 751) +++ trunk/actions/Upgrade.php 2008-10-22 22:06:24 UTC (rev 752) @@ -13,15 +13,13 @@ { var $users; - function dispatch() { - $this->users = new Users(); - if (!($user = $this->users->getValidatedUser($_POST['username'], $_POST['password'], $this->configuration)) || !$user->isAdmin()) { + function dispatch() + { + if (!$this->_getValidatedAdminUser($_POST['username'], $_POST['password'])) { $_SESSION['message'] = $this->user->lang('Wrong Username or Password'); Library::redirect(Library::getLink(array('view' => 'Upgrade'))); } - $this->model = new Model(); - require 'setup/versions.php'; if (!$currentVersion = $this->configuration->getConfigValue('version')) { $currentVersion = 0; @@ -43,6 +41,10 @@ continue; } + if (!$includeFiles) { + continue; + } + $fileName = 'setup/upgrade_'.$version.'.sql'; if ($onlyCheckFiles) { @@ -62,6 +64,33 @@ return $version; } + + /** + * Gotta use this instead of the Users class because the users table + * schema changes between versions + */ + private function _getValidatedAdminUser($username, $password) + { + $version = $this->configuration->getConfigValue('version'); + + if (in_array($version, array(0, '1.1.0'))) { + $query = 'SELECT user_id, firstname, lastname, username, email, admin FROM users WHERE username=? AND password=MD5(?) AND admin=1'; + $idField = 'user_id'; + } else if ($version == '1.2.0') { + $query = 'SELECT user_id, firstname, lastname, username, email, password_changed, admin FROM users WHERE username=? AND password=MD5(?) AND admin=1'; + $idField = 'user_id'; + } else { + $query = 'SELECT id, firstname, lastname, username, email, password_changed, admin FROM users WHERE username=? AND password=MD5(?) AND admin=1'; + $idField = 'id'; + } + + $result = DB::getInstance()->query($query, array($username, $password)); + if ($result->fetch()) { + return true; + } + + return false; + } } ?> Modified: trunk/setup/upgrade_1.9.0.sql =================================================================== --- trunk/setup/upgrade_1.9.0.sql 2008-10-22 21:16:33 UTC (rev 751) +++ trunk/setup/upgrade_1.9.0.sql 2008-10-22 22:06:24 UTC (rev 752) @@ -1,4 +1,3 @@ ALTER TABLE `configuration` CHANGE `value` `value` VARCHAR( 50 ) NOT NULL; ALTER TABLE `files` ADD `virus_checked` TINYINT NOT NULL DEFAULT '0'; ALTER TABLE `users` CHANGE `user_id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT; -UPDATE `configuration` SET `value` = '1.9.0' WHERE `field` = 'version'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |