Newer
Older
<?php
/*********************************************************************
upgrade.php
osTicket Upgrade Wizard
Peter Rotich <peter@osticket.com>
Copyright (c) 2006-2012 osTicket
http://www.osticket.com
Released under the GNU General Public License WITHOUT ANY WARRANTY.
See LICENSE.TXT for details.
vim: expandtab sw=4 ts=4 sts=4:
**********************************************************************/
function staffLoginPage($msg) {
$_SESSION['_staff']['auth']['dest']=THISPAGE;
$_SESSION['_staff']['auth']['msg']=$msg;
header('Location: ../scp/login.php');
exit;
}
require '../scp/staff.inc.php';
if(!$thisstaff or !$thisstaff->isadmin()) {
staffLoginPage('Admin Access Required!');
exit;
}
define('SETUPINC', true);
define('INC_DIR', './inc/');
define('SQL_DIR', INC_DIR.'sql/');
require_once INC_DIR.'class.upgrader.php';
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//$_SESSION['ost_upgrader']=null;
$upgrader = new Upgrader($cfg->getSchemaSignature(), TABLE_PREFIX, SQL_DIR);
$wizard=array();
$wizard['title']='osTicket Upgrade Wizard';
$wizard['tagline']='Upgrading osTicket to v'.$upgrader->getVersionVerbose();
$wizard['logo']='logo-upgrade.png';
$wizard['menu']=array('Upgrade Guide'=>'http://osticket.com/wiki/Upgrade_and_Migration',
'Get Professional Help'=>'http://osticket.com/support');
$errors=array();
if($_POST && $_POST['s'] && !$upgrader->isAborted()) {
switch(strtolower($_POST['s'])) {
case 'prereq':
//XXX: check if it's upgradable version??
if(!$cfg->isUpgradePending())
$errors['err']=' Nothing to do! System already upgraded to the current version';
elseif($upgrader->check_prereq())
$upgrader->setState('upgrade');
else
$errors['prereq']='Minimum requirements not met!';
break;
case 'upgrade': //Manual upgrade.... when JS (ajax) is not supported.
if($upgrader->getNumPendingTasks()) {
$upgrader->doTasks();
} elseif($cfg->isUpgradePending() && $upgrader->isUpgradable()) {
$upgrader->upgrade();
} elseif(!$cfg->isUpgradePending()) {
$upgrader->setState('done');
}
if(($errors=$upgrader->getErrors())) {
$upgrader->setState('aborted');
}
break;
default:
$errors['err']='Unknown action!';
}
}
switch(strtolower($upgrader->getState())) {
case 'aborted':
$inc='upgrade-aborted.inc.php';
break;
case 'upgrade':
$inc='upgrade.inc.php';
break;
case 'done':
$inc='upgrade-done.inc.php';
break;
default:
$inc='upgrade-prereq.inc.php';
if($upgrader->isAborted())
$inc='upgrade-aborted.inc.php';
elseif(!$cfg->isUpgradePending())
$errors['err']='Nothing to do! System already upgraded to the latest version';
}
require(INC_DIR.'header.inc.php');
require(INC_DIR.$inc);
require(INC_DIR.'footer.inc.php');