diff --git a/api/api.inc.php b/api/api.inc.php index d209860d5c60bff7d55c3032144ea675b4de6767..926a0e2a9ddb4b0464c5f1385e56665312339d8e 100644 --- a/api/api.inc.php +++ b/api/api.inc.php @@ -36,13 +36,13 @@ define('OSTAPIINC',TRUE); // Define tag that included files can check $remotehost=(isset($_SERVER['HTTP_HOST']) || isset($_SERVER['REMOTE_ADDR']))?TRUE:FALSE; /* API exit helper */ function api_exit($code,$msg='') { - global $remotehost,$cfg; + global $remotehost, $ost; if($code!=EX_SUCCESS) { //Error occured... $_SESSION['api']['errors']+=1; $_SESSION['api']['time']=time(); - Sys::log(LOG_WARNING,"API error - code #$code",$msg); + $ost->logWarning("API error - code #$code",$msg); //echo "API Error:.$msg"; } if($remotehost){ diff --git a/api/cron.php b/api/cron.php index 86de02cdb6e32a4f3f61e5fc87a2567133694f82..a8874e3b7eb45eb246145e756db8f85c91c1e47a 100644 --- a/api/cron.php +++ b/api/cron.php @@ -17,5 +17,5 @@ require('api.inc.php'); require_once(INCLUDE_DIR.'class.cron.php'); Cron::run(); -Sys::log(LOG_DEBUG,'Cron Job','External cron job executed ['.$_SERVER['REMOTE_ADDR'].']'); +$ost->logDebug('Cron Job','External cron job executed ['.$_SERVER['REMOTE_ADDR'].']'); ?> diff --git a/client.inc.php b/client.inc.php index 3b450e9e2491653ec44c65f346ef79758cc1d1a8..1908eaa1b5d5172fffaccfbee69f6f17e4871d1e 100644 --- a/client.inc.php +++ b/client.inc.php @@ -29,7 +29,7 @@ define('OSTCLIENTINC',TRUE); define('ASSETS_PATH',ROOT_PATH.'assets/default/'); //Check the status of the HelpDesk. -if(!is_object($cfg) || !$cfg->getId() || $cfg->isHelpDeskOffline() || $cfg->isUpgradePending()) { +if(!is_object($ost) || !$ost->isSystemOnline()) { include('./offline.php'); exit; } diff --git a/include/class.config.php b/include/class.config.php index 061390bc9f0954784ac96a4bb2e8256fd3f66acb..cb7cd40aed575013ee1db136d15037438d6b34fb 100644 --- a/include/class.config.php +++ b/include/class.config.php @@ -57,19 +57,15 @@ class Config { } function isHelpDeskOffline() { - return !$this->isSystemOnline(); + return !$this->isOnline(); } function isHelpDeskOnline() { - return $this->isSystemOnline(); + return $this->isOnline(); } - function isSystemOnline() { - return ($this->config['isonline'] && !$this->isUpgradePending()); - } - - function isUpgradePending() { - return (defined('SCHEMA_SIGNATURE') && strcasecmp($this->getSchemaSignature(), SCHEMA_SIGNATURE)); + function isOnline() { + return ($this->config['isonline']); } function isKnowledgebaseEnabled() { @@ -125,6 +121,14 @@ class Config { function getId() { return $this->id; } + + function getConfigId() { + return $this->getId(); + } + + function getConfigInfo() { + return $this->config; + } function getTitle() { return $this->config['helpdesk_title']; @@ -138,10 +142,6 @@ class Config { return rtrim($this->getUrl(),'/'); } - function getConfig() { - return $this->config; - } - function getTZOffset() { return $this->config['timezone_offset']; } diff --git a/include/class.cron.php b/include/class.cron.php index ddc4d2973e77ff93f6f83a4a3fefd6b4b9b82814..c8e3a81def985b99eb0f21eaea8751362e1ced05 100644 --- a/include/class.cron.php +++ b/include/class.cron.php @@ -31,7 +31,8 @@ class Cron { } function PurgeLogs() { - Sys::purgeLogs(); + global $ost; + if($ost) $ost->purgeLogs(); } function CleanOrphanedFiles() { diff --git a/include/class.email.php b/include/class.email.php index 0b4317f7e6e6dc82866288fc88631ff601b5753f..dba9a45d5d4c569c9a5e7b2c17c4254f12abdcee 100644 --- a/include/class.email.php +++ b/include/class.email.php @@ -122,7 +122,7 @@ class Email { } function send($to, $subject, $message, $attachments=null, $options=null) { - global $cfg; + global $cfg, $ost; //Get SMTP info IF enabled! $smtp=array(); @@ -149,11 +149,12 @@ class Email { $headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject, - 'Date'=>date('D,d M Y H:i:s O'), + 'Date'=>date('D, d M Y H:i:s O'), 'Message-ID' =>'<'.Misc::randCode(6).''.time().'-'.$this->getEmail().'>', 'X-Mailer' =>'osTicket v1.7', 'Content-Type' => 'text/html; charset="UTF-8"' ); + $mime = new Mail_mime(); $mime->setTXTBody($body); //XXX: Attachments @@ -189,8 +190,9 @@ class Email { if(!PEAR::isError($result)) return true; + //SMTP failed - log error. $alert=sprintf("Unable to email via %s:%d [%s]\n\n%s\n",$smtp['host'],$smtp['port'],$smtp['username'],$result->getMessage()); - Sys::log(LOG_ALERT,'SMTP Error',$alert,false); + $ost->logError('SMTP Error', $alert, false); //NOTE: email alert overwrite - don't email when having email trouble. //print_r($result); } @@ -292,6 +294,7 @@ class Email { //very basic checks $vars['name']=Format::striptags(trim($vars['name'])); + $vars['email']=trim($vars['email']); if($id && $id!=$vars['id']) $errors['err']='Internal error. Get technical help.'; @@ -300,7 +303,7 @@ class Email { $errors['email']='Valid email required'; }elseif(($eid=Email::getIdByEmail($vars['email'])) && $eid!=$id) { $errors['email']='Email already exits'; - }elseif($cfg && !strcasecmp($cfg->getAdminEmail(),$vars['email'])) { + }elseif($cfg && !strcasecmp($cfg->getAdminEmail(), $vars['email'])) { $errors['email']='Email already used as admin email!'; }elseif(Staff::getIdByEmail($vars['email'])) { //make sure the email doesn't belong to any of the staff $errors['email']='Email in-use by a staff member'; diff --git a/include/class.mailfetch.php b/include/class.mailfetch.php index f25d72b26236471dd6b14e365a1745067ffe6f3e..a353b690be55c3f9cbd3740b6edcc7164dabc16e 100644 --- a/include/class.mailfetch.php +++ b/include/class.mailfetch.php @@ -255,7 +255,7 @@ class MailFetcher { } function createTicket($mid,$emailid=0){ - global $cfg; + global $cfg, $ost; $mailinfo=$this->getHeaderInfo($mid); @@ -265,11 +265,11 @@ class MailFetcher { return true; } - //Is the email address banned? + //Is the email address banned? if($mailinfo['from']['email'] && EmailFilter::isBanned($mailinfo['from']['email'])) { - //We need to let admin know... - Sys::log(LOG_WARNING,'Ticket denied','Banned email - '.$mailinfo['from']['email']); - return true; + //We need to let admin know... + $ost->logWarning('Ticket denied', 'Banned email - '.$mailinfo['from']['email']); + return true; } @@ -370,15 +370,15 @@ class MailFetcher { } function fetchMail(){ - global $cfg; + global $ost, $cfg; if(!$cfg->canFetchMail()) return; //We require imap ext to fetch emails via IMAP/POP3 if(!function_exists('imap_open')) { - $msg='PHP must be compiled with IMAP extension enabled for IMAP/POP3 fetch to work!'; - Sys::log(LOG_WARN,'Mail Fetch Error',$msg); + $msg='osTicket requires PHP IMAP extension enabled for IMAP/POP3 fetch to work!'; + $ost->logWarning('Mail Fetch Error', $msg); return; } @@ -393,7 +393,7 @@ class MailFetcher { //TODO: Lock the table here?? while($row=db_fetch_array($accounts)) { - $fetcher = new MailFetcher($row['userid'],Misc::decrypt($row['userpass'],SECRET_SALT), + $fetcher = new MailFetcher($row['userid'], Mcrypt::decrypt($row['userpass'],SECRET_SALT), $row['mail_host'],$row['mail_port'],$row['mail_protocol'],$row['mail_encryption']); if($fetcher->connect()){ $fetcher->fetchTickets($row['email_id'],$row['mail_fetchmax'],$row['mail_delete']?true:false,$row['mail_archivefolder']); @@ -410,7 +410,7 @@ class MailFetcher { "\nError: ".$fetcher->getLastError(). "\n\n ".$errors.' consecutive errors. Maximum of '.$MAX_ERRORS. ' allowed'. "\n\n This could be connection issues related to the host. Next delayed login attempt in aprox. 10 minutes"; - Sys::alertAdmin('Mail Fetch Failure Alert',$msg,true); + $ost->alertAdmin('Mail Fetch Failure Alert', $msg, true); } } } diff --git a/include/class.mcrypt.php b/include/class.mcrypt.php index a6a9791019d92ea2165b92c4ccd7e7e908380b6e..13d56a7df32e22ffe5abff5c5a6bf195cc58749d 100644 --- a/include/class.mcrypt.php +++ b/include/class.mcrypt.php @@ -15,20 +15,25 @@ **********************************************************************/ class Mcrypt { - function encrypt($text, $salt){ + function encrypt($text, $salt) { + global $ost; + + //if mcrypt extension is not installed--simply return unencryted text and log a warning (if enabled). + if(!function_exists('mcrypt_encrypt') || !function_exists('mcrypt_decrypt')) { + if($ost) { + $msg='Cryptography extension mcrypt is not enabled or installed. Important text/data is being stored as plain text in database.'; + $ost->logWarning('mcrypt module missing', $msg); + } - //if mcrypt extension is not installed--simply return unencryted text and log a warning. - if(!function_exists('mcrypt_encrypt') || !function_exists('mcrypt_decrypt')){ - $msg='Cryptography extension mcrypt is not enabled or installed. Important text/data is being stored as plain text in database.'; - Sys::log(LOG_WARN,'mcrypt module missing',$msg); return $text; } - return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$salt, $text, MCRYPT_MODE_ECB, + return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)))); } - function decrypt($text, $salt){ + function decrypt($text, $salt) { + if(!function_exists('mcrypt_encrypt') || !function_exists('mcrypt_decrypt')) return $text; diff --git a/include/class.ostsession.php b/include/class.ostsession.php index ccbae6e03f90147f06b24a79b0e1468faae4f821..0bcd9449fb234c6b9a895da6b046527f7a7909a4 100644 --- a/include/class.ostsession.php +++ b/include/class.ostsession.php @@ -53,9 +53,11 @@ class osTicketSession { return (true); } - function read($session_id){ + function read($id){ $data=""; - $sql='SELECT session_data FROM '.SESSION_TABLE.' WHERE session_id='.db_input($session_id).' AND session_expire>NOW()'; + $sql='SELECT session_data FROM '.SESSION_TABLE + .' WHERE session_id='.db_input($id) + .' AND session_expire>NOW()'; if(($res=db_query($sql)) && db_num_rows($res)) list($data)=db_fetch_row($res); @@ -63,7 +65,7 @@ class osTicketSession { } function write($id, $data){ - global $cfg,$thisstaff; + global $thisstaff; $sql='REPLACE INTO '.SESSION_TABLE.' SET session_updated=NOW() '. ',session_id='.db_input($id). @@ -98,8 +100,9 @@ class osTicketSession { $sql.=" AND TIME_TO_SEC(TIMEDIFF(NOW(),session_updated))<$sec"; $users=array(); - if(($res=db_query($sql)) && db_num_rows($res)){ - list($users[])=db_fetch_row($res); + if(($res=db_query($sql)) && db_num_rows($res)) { + while(list($uid)=db_fetch_row($res)) + $users[] = $uid; } return $users; diff --git a/include/class.staff.php b/include/class.staff.php index cf97785eb8470859a4b8e2206863ee81479e05d2..bd7379ed95e659fbf0c2c527735376f831238e89 100644 --- a/include/class.staff.php +++ b/include/class.staff.php @@ -95,7 +95,8 @@ class Staff { /* check if passwd reset is due. */ function isPasswdResetDue() { global $cfg; - return ($cfg && $cfg->getPasswdResetPeriod() && $this->ht['passwd_change_sec']>($cfg->getPasswdResetPeriod()*30*24*60*60)); + return ($cfg && $cfg->getPasswdResetPeriod() + && $this->ht['passwd_change_sec']>($cfg->getPasswdResetPeriod()*30*24*60*60)); } function isPasswdChangeDue() { @@ -495,7 +496,7 @@ class Staff { } function login($username, $passwd, &$errors, $strike=true) { - global $cfg, $session; + global $ost, $cfg; if($_SESSION['_staff']['laststrike']) { @@ -521,12 +522,15 @@ class Staff { $user->refreshSession(); //set the hash. $_SESSION['TZ_OFFSET']=$user->getTZoffset(); $_SESSION['TZ_DST']=$user->observeDaylight(); - Sys::log(LOG_DEBUG,'Staff login',sprintf("%s logged in [%s]", $user->getUserName(), $_SERVER['REMOTE_ADDR'])); //Debug. + + $ost->logDebug('Staff login', + sprintf("%s logged in [%s]", $user->getUserName(), $_SERVER['REMOTE_ADDR'])); //Debug. $sid=session_id(); //Current ID session_regenerate_id(TRUE); //Destroy old session ID - needed for PHP version < 5.1.0 TODO: remove when we move to php 5.3 as min. requirement. - if($session && is_object($session) && $sid) + if(($session=$ost->getSession()) && is_object($session) && $sid) $session->destroy($sid); + session_write_close(); return $user; @@ -540,12 +544,12 @@ class Staff { $alert='Excessive login attempts by a staff member?'."\n". 'Username: '.$_POST['username']."\n".'IP: '.$_SERVER['REMOTE_ADDR']."\n".'TIME: '.date('M j, Y, g:i a T')."\n\n". 'Attempts #'.$_SESSION['_staff']['strikes']."\n".'Timeout: '.($cfg->getStaffLoginTimeout()/60)." minutes \n\n"; - Sys::log(LOG_ALERT,'Excessive login attempts ('.$_POST['username'].')', $alert,($cfg->alertONLoginError())); + $ost->logWarning('Excessive login attempts ('.$_POST['username'].')', $alert, ($cfg->alertONLoginError())); } elseif($_SESSION['_staff']['strikes']%2==0) { //Log every other failed login attempt as a warning. $alert='Username: '.$_POST['username']."\n".'IP: '.$_SERVER['REMOTE_ADDR']. "\n".'TIME: '.date('M j, Y, g:i a T')."\n\n".'Attempts #'.$_SESSION['_staff']['strikes']; - Sys::log(LOG_WARNING,'Failed staff login attempt ('.$_POST['username'].')', $alert); + $ost->logWarning('Failed staff login attempt ('.$_POST['username'].')', $alert, false); } return false; diff --git a/include/class.template.php b/include/class.template.php index 36d9b2f4845d3ca14ad564c9a8c829c11b9ab083..fa8d070d544c4bf5eda0da758fed814f106c529d 100644 --- a/include/class.template.php +++ b/include/class.template.php @@ -91,11 +91,12 @@ class Template { return (db_query($sql) && db_affected_rows()); } - function getMsgTemplate($name){ + function getMsgTemplate($name) { + global $ost; //TODO: Don't preload - do ondemand fetch! $tpl=array(); - switch(strtolower($name)){ + switch(strtolower($name)) { case 'ticket_autoresp': $tpl=array('subj'=>$this->ht['ticket_autoresp_subj'],'body'=>$this->ht['ticket_autoresp_body']); break; @@ -130,7 +131,7 @@ class Template { $tpl=array('subj'=>$this->ht['ticket_overdue_subj'],'body'=>$this->ht['ticket_overdue_body']); break; default: - Sys::log(LOG_WARNING,'Template Fetch Error',"Unable to fetch '$name' template - id #".$this->getId()); + $ost->logWarning('Template Fetch Error', "Unable to fetch '$name' template - id #".$this->getId()); $tpl=array(); } @@ -197,7 +198,7 @@ class Template { if($errors) return false; $sql='UPDATE '.EMAIL_TEMPLATE_TABLE.' SET updated=NOW() '; - switch(strtolower($vars['tpl'])){ + switch(strtolower($vars['tpl'])) { case 'ticket_autoresp': $sql.=',ticket_autoresp_subj='.db_input($vars['subj']).',ticket_autoresp_body='.db_input($vars['body']); break; @@ -326,8 +327,8 @@ class Template { return ($id && is_numeric($id) && ($t= new Template($id)) && $t->getId()==$id)?$t:null; } - function save($id,$vars,&$errors) { - global $cfg; + function save($id, $vars, &$errors) { + global $ost; $tpl=null; $vars['name']=Format::striptags(trim($vars['name'])); @@ -354,12 +355,14 @@ class Template { $sql='UPDATE '.EMAIL_TEMPLATE_TABLE.' SET '.$sql.' WHERE tpl_id='.db_input($id); if(db_query($sql)) return true; + $errors['err']='Unable to update the template. Internal error occurred'; - }elseif($tpl && ($info=$tpl->getInfo())){ + + } elseif($tpl && ($info=$tpl->getInfo())) { $sql='INSERT INTO '.EMAIL_TEMPLATE_TABLE.' SET '.$sql .' ,created=NOW() ' - .' ,cfg_id='.db_input($cfg->getId()) + .' ,cfg_id='.db_input($ost->getConfigId()) .' ,ticket_autoresp_subj='.db_input($info['ticket_autoresp_subj']) .' ,ticket_autoresp_body='.db_input($info['ticket_autoresp_body']) .' ,ticket_notice_subj='.db_input($info['ticket_notice_subj']) diff --git a/include/class.ticket.php b/include/class.ticket.php index 6a27d981bb24bdc7f05a6c8adec30615f0f7ed24..8be88bee75840140feced0586d520a615b845f52 100644 --- a/include/class.ticket.php +++ b/include/class.ticket.php @@ -885,11 +885,11 @@ class Ticket{ } function onOpenLimit($sendNotice=true) { - global $cfg; + global $ost, $cfg; //Log the limit notice as a warning for admin. $msg=sprintf('Max open tickets (%d) reached for %s ', $cfg->getMaxOpenTickets(), $this->getEmail()); - sys::log(LOG_WARNING, 'Max. Open Tickets Limit ('.$this->getEmail().')', $msg); + $ost->logWarning('Max. Open Tickets Limit ('.$this->getEmail().')', $msg); if(!$sendNotice || !$cfg->sendOverLimitNotice()) return true; @@ -916,7 +916,7 @@ class Ticket{ .'Open ticket: '.$client->getNumOpenTickets()."\n" .'Max Allowed: '.$cfg->getMaxOpenTickets()."\n\nNotice sent to the user."; - Sys::alertAdmin('Overlimit Notice',$msg); + $ost->alertAdmin('Overlimit Notice', $msg); return true; } @@ -1803,7 +1803,7 @@ class Ticket{ * $autorespond and $alertstaff overwrites config settings... */ function create($vars, &$errors, $origin, $autorespond=true, $alertstaff=true) { - global $cfg,$thisclient,$_FILES; + global $ost, $cfg, $thisclient, $_FILES; //Check for 403 if ($vars['email'] && Validator::is_email($vars['email'])) { @@ -1811,7 +1811,7 @@ class Ticket{ //Make sure the email address is not banned if(EmailFilter::isBanned($vars['email'])) { $errors['err']='Ticket denied. Error #403'; - Sys::log(LOG_WARNING,'Ticket denied','Banned email - '.$vars['email']); + $ost->logWarning('Ticket denied', 'Banned email - '.$vars['email']); return 0; } @@ -1822,8 +1822,9 @@ class Ticket{ && ($openTickets>=$cfg->getMaxOpenTickets()) ) { $errors['err']="You've reached the maximum open tickets allowed."; - Sys::log(LOG_WARNING, 'Ticket denied -'.$vars['email'], - sprintf('Max open tickets (%d) reached for %s ', $cfg->getMaxOpenTickets(), $vars['email'])); + $ost->logWarning('Ticket denied -'.$vars['email'], + sprintf('Max open tickets (%d) reached for %s ', + $cfg->getMaxOpenTickets(), $vars['email'])); return 0; } @@ -1832,9 +1833,10 @@ class Ticket{ if (($email_filter=new EmailFilter($vars)) && ($filter=$email_filter->shouldReject())) { $errors['err']='Ticket denied. Error #403'; - Sys::log(LOG_WARNING,'Ticket denied', - sprintf('Banned email - %s by filter "%s"', $vars['email'], - $filter->getName())); + $ost->logWarning('Ticket denied', + sprintf('Banned email - %s by filter "%s"', + $vars['email'], $filter->getName())); + return 0; } diff --git a/include/mysql.php b/include/mysql.php index 3f8729393977417db9d0f519068e013545eb05ce..d1d6863d87c6ced4090eb1389d051e223c5a3c8b 100644 --- a/include/mysql.php +++ b/include/mysql.php @@ -78,18 +78,18 @@ } // execute sql query - function db_query($query, $database="",$conn=""){ - global $cfg; + function db_query($query, $database="", $conn=""){ + global $ost; if($conn) { /* connection is provided*/ - $result = ($database)?mysql_db_query($database,$query,$conn):mysql_query($query,$conn); + $result = ($database)?mysql_db_query($database, $query, $conn):mysql_query($query, $conn); } else { - $result = ($database)?mysql_db_query($database,$query):mysql_query($query); + $result = ($database)?mysql_db_query($database, $query):mysql_query($query); } - if(!$result) { //error reporting + if(!$result && $ost) { //error reporting $alert='['.$query.']'."\n\n".db_error(); - Sys::log(LOG_ALERT,'DB Error #'.db_errno(),$alert,($cfg && $cfg->alertONSQLError())); + $ost->logError('DB Error #'.db_errno(), $alert, ($ost->alertONSQLError())); //echo $alert; #uncomment during debuging or dev. } diff --git a/include/staff/attachment.inc.php b/include/staff/attachment.inc.php index 5951b87c0b0788767b34c98d1a7290a7c1debcdd..6027678123ca55684c721ae72f98133135f603f7 100644 --- a/include/staff/attachment.inc.php +++ b/include/staff/attachment.inc.php @@ -1,7 +1,7 @@ <?php if(!defined('OSTADMININC') || !$thisstaff->isAdmin()) die('Access Denied'); //Get the config info. -$config=($errors && $_POST)?Format::input($_POST):$cfg->getConfig(); +$config=($errors && $_POST)?Format::input($_POST):$cfg->getConfigInfo(); ?> <table width="100%" border="0" cellspacing=0 cellpadding=0> <form action="admin.php?t=attach" method="post"> diff --git a/include/staff/preference.inc.php b/include/staff/preference.inc.php index 054d592a7555f8d16f436f9cc5c9c66a91b6f27b..6eb27354b0d4cd019964b460b58a3c4b0db1110e 100644 --- a/include/staff/preference.inc.php +++ b/include/staff/preference.inc.php @@ -2,7 +2,7 @@ if(!defined('OSTADMININC') || !$thisstaff->isAdmin()) die('Access Denied'); //Get the config info. -$config=($errors && $_POST)?Format::input($_POST):Format::htmlchars($cfg->getConfig()); +$config=($errors && $_POST)?Format::input($_POST):Format::htmlchars($cfg->getConfigInfo()); //Basic checks for warnings... $warn=array(); if($config['allow_attachments'] && !$config['upload_dir']) { diff --git a/login.php b/login.php index a1fb02e5ea75175c9956b46f140384e6681622da..823c48a030d494f2b6ae4f06bbbcf35c8de8918d 100644 --- a/login.php +++ b/login.php @@ -56,7 +56,7 @@ if($_POST && (!empty($_POST['lemail']) && !empty($_POST['lticket']))): $_SESSION['TZ_DST']=$cfg->observeDaylightSaving(); //Log login info... $msg=sprintf("%s/%s logged in [%s]",$ticket->getEmail(),$ticket->getExtId(),$_SERVER['REMOTE_ADDR']); - Sys::log(LOG_DEBUG,'User login',$msg); + $ost->logDebug('User login', $msg); //Redirect tickets.php session_write_close(); session_regenerate_id(); @@ -75,11 +75,11 @@ if($_POST && (!empty($_POST['lemail']) && !empty($_POST['lticket']))): 'Email: '.$_POST['lemail']."\n".'Ticket#: '.$_POST['lticket']."\n". 'IP: '.$_SERVER['REMOTE_ADDR']."\n".'Time:'.date('M j, Y, g:i a T')."\n\n". 'Attempts #'.$_SESSION['_client']['strikes']; - Sys::log(LOG_ALERT,'Excessive login attempts (client)',$alert,($cfg->alertONLoginError())); + $ost->logError('Excessive login attempts (client)', $alert, ($cfg->alertONLoginError())); }elseif($_SESSION['_client']['strikes']%2==0){ //Log every other failed login attempt as a warning. $alert='Email: '.$_POST['lemail']."\n".'Ticket #: '.$_POST['lticket']."\n".'IP: '.$_SERVER['REMOTE_ADDR']. "\n".'TIME: '.date('M j, Y, g:i a T')."\n\n".'Attempts #'.$_SESSION['_client']['strikes']; - Sys::log(LOG_WARNING,'Failed login attempt (client)',$alert); + $ost->logWarning('Failed login attempt (client)', $alert); } endif; diff --git a/main.inc.php b/main.inc.php index c5da45a3a8c2de0d69d4ce5e15bf93a2a9628484..a84e9705c53ea8162b689926745ddb92a6ad92db 100644 --- a/main.inc.php +++ b/main.inc.php @@ -159,7 +159,7 @@ $ferror=null; if (!db_connect(DBHOST,DBUSER,DBPASS) || !db_select_database(DBNAME)) { $ferror='Unable to connect to the database'; - } elseif(!($ost=osTicket::start(1))) { + } elseif(!($ost=osTicket::start(1)) || !($cfg = $ost->getConfig())) { $ferror='Unable to load config info from DB. Get tech support.'; } @@ -173,12 +173,11 @@ } //Init - $cfg = $ost; $session = $ost->getSession(); //System defaults we might want to make global// #pagenation default - user can overwrite it! - define('DEFAULT_PAGE_LIMIT', $ost->getPageSize()?$ost->getPageSize():25); + define('DEFAULT_PAGE_LIMIT', $cfg->getPageSize()?$cfg->getPageSize():25); #Cleanup magic quotes crap. if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) { diff --git a/scp/admin.inc.php b/scp/admin.inc.php index 5f6f5e7633422251ca7bbf8960f69461a8afbc35..89e234e2f13e14204701348fa2222ae195930ea2 100644 --- a/scp/admin.inc.php +++ b/scp/admin.inc.php @@ -15,16 +15,16 @@ **********************************************************************/ require('staff.inc.php'); //Make sure config is loaded and the staff is set and of admin type -if(!$cfg or !$thisstaff or !$thisstaff->isAdmin()){ +if(!$ost or !$thisstaff or !$thisstaff->isAdmin()){ header('Location: index.php'); require('index.php'); // just in case! exit; } //Some security related warnings - bitch until fixed!!! :) -if($cfg->isUpgradePending()) { +if($ost->isUpgradePending()) { $errors['err']=$sysnotice='System upgrade is pending <a href="../setup/upgrade.php">Upgrade Now</a>'; -} elseif(!$cfg->isHelpDeskOffline()) { +} else { if(file_exists('../setup/')) { $sysnotice='Please take a minute to delete <strong>setup/install</strong> directory (../setup/) for security reasons.'; diff --git a/scp/autocron.php b/scp/autocron.php index 589ea416e85d0ef5524d1bd8d9f28ce590bce0ef..366351c9defedffd2bccd478b1d3c8bd2e349ba4 100644 --- a/scp/autocron.php +++ b/scp/autocron.php @@ -35,8 +35,9 @@ require_once(INCLUDE_DIR.'class.cron.php'); Cron::TicketMonitor(); //Age tickets: We're going to age tickets ever regardless of cron settings. if($cfg && $cfg->enableAutoCron()){ //ONLY fetch tickets if autocron is enabled! Cron::MailFetcher(); //Fetch mail. - Sys::log(LOG_DEBUG,'Autocron','cron job executed ['.$thisstaff->getUserName().']'); -} + $ost->logDebug('Autocron', 'Cron job executed ['.$thisstaff->getUserName().']'); +} + $_SESSION['lastcroncall']=time(); endif; $output = ob_get_contents(); diff --git a/scp/logout.php b/scp/logout.php index e02e4be1609d387d43b3e59d1693a291d80677cb..32d62d14abb29363df9a7da033a1f0873821cbc9 100644 --- a/scp/logout.php +++ b/scp/logout.php @@ -15,7 +15,9 @@ vim: expandtab sw=4 ts=4 sts=4: **********************************************************************/ require('staff.inc.php'); -Sys::log(LOG_DEBUG,'Staff logout',sprintf("%s logged out [%s]",$thisstaff->getUserName(),$_SERVER['REMOTE_ADDR'])); //Debug. +$ost->logDebug('Staff logout', + sprintf("%s logged out [%s]", + $thisstaff->getUserName(), $_SERVER['REMOTE_ADDR'])); //Debug. $_SESSION['_staff']=array(); session_unset(); session_destroy(); diff --git a/scp/settings.php b/scp/settings.php index d7809d63751039c61639efd448c5718a888cb7ac..9058fe42ca52c4f9b428bbc52f2ed2cb61f80a8a 100644 --- a/scp/settings.php +++ b/scp/settings.php @@ -57,7 +57,7 @@ require(STAFFINC_DIR.'header.inc.php'); </form> </div> <?php -$config=($errors && $_POST)?Format::input($_POST):Format::htmlchars($cfg->getConfig()); +$config=($errors && $_POST)?Format::input($_POST):Format::htmlchars($cfg->getConfigInfo()); include_once(STAFFINC_DIR."settings-$target.inc.php"); include_once(STAFFINC_DIR.'footer.inc.php'); ?> diff --git a/scp/staff.inc.php b/scp/staff.inc.php index 0256ce704649ecf10a7695d951b8624c6b60d72e..a28cf1d63a288ad39697527bd10c7d4fbbd28611 100644 --- a/scp/staff.inc.php +++ b/scp/staff.inc.php @@ -71,7 +71,7 @@ if(!$thisstaff->isAdmin()) { } //Staff are not allowed to login in offline mode!! - if($ost->isHelpDeskOffline() || $ost->isUpgradePending()) { + if(!$ost->isSystemOffline() || $ost->isUpgradePending()) { staffLoginPage('System Offline'); exit; } @@ -94,7 +94,7 @@ $tabs=array(); $submenu=array(); if($ost->isUpgradePending()) { $errors['err']=$sysnotice='System upgrade is pending <a href="../setup/upgrade.php">Upgrade Now</a>'; -} elseif($ost->isHelpDeskOffline()) { +} elseif($cfg->isHelpDeskOffline()) { $sysnotice='<strong>System is set to offline mode</strong> - Client interface is disabled and ONLY admins can access staff control panel.'; $sysnotice.=' <a href="settings.php">Enable</a>.'; } diff --git a/scp/tickets.php b/scp/tickets.php index bd5bebac2abe359de5c2a89b62945abbe599fc46..03b95b3f71e8d8c972a40f036007173adc565d79 100644 --- a/scp/tickets.php +++ b/scp/tickets.php @@ -483,8 +483,6 @@ if($ticket) { if($_REQUEST['a']=='search' && !$_REQUEST['status']) $nav->setActiveSubMenu(-1); - //$ost->addExtraHeader('<meta http-equiv="refresh" content="'.$min*60.'" />'); - //set refresh rate if the user has it configured if(!$_POST && $_REQUEST['a']!='search' && ($min=$thisstaff->getRefreshRate())) $ost->addExtraHeader('<meta http-equiv="refresh" content="'.($min*60).'" />'); diff --git a/setup/inc/class.upgrader.php b/setup/inc/class.upgrader.php index 73af7e6066cddf41140d7bd6f2c2618431dfe83f..891d472d9264a78501bac8ec6d7a4d28abf8553c 100644 --- a/setup/inc/class.upgrader.php +++ b/setup/inc/class.upgrader.php @@ -50,8 +50,9 @@ class Upgrader extends SetupWizard { } function onError($error) { + global $ost; - Sys::log(LOG_ERR, 'Upgrader Error', $error); + $ost->logError('Upgrader Error', $error); $this->setError($error); $this->setState('aborted'); } @@ -191,6 +192,7 @@ class Upgrader extends SetupWizard { } function upgrade() { + global $ost; if($this->getPendingTasks() || !($patches=$this->getPatches())) return false; @@ -209,7 +211,7 @@ class Upgrader extends SetupWizard { if(($info = $this->readPatchInfo($patch)) && $info['version']) $logMsg.= ' ('.$info['version'].') '; - Sys::log(LOG_DEBUG, 'Upgrader - Patch applied', $logMsg); + $ost->logDebug('Upgrader - Patch applied', $logMsg); //Check if the said patch has scripted tasks if(!($tasks=$this->getTasksForPatch($phash))) diff --git a/setup/p.php b/setup/p.php index babeebb866f198e7fc78516a34133164d72a9b47..51c7055f257559099fd600ef12c31e882605873d 100644 --- a/setup/p.php +++ b/setup/p.php @@ -41,19 +41,19 @@ if(!$_SESSION['ost_upgrader'][$upgrader->getShash()]['progress']) { } if($upgrader->getNumPendingTasks()) { - if($upgrader->doTasks() && !$upgrader->getNumPendingTasks() && $cfg->isUpgradePending()) { + if($upgrader->doTasks() && !$upgrader->getNumPendingTasks() && $ost->isUpgradePending()) { //Just reporting done...with tasks - break in between patches! header("HTTP/1.1 304 Not Modified"); exit; } -} elseif($cfg->isUpgradePending() && $upgrader->isUpgradable()) { +} elseif($ost->isUpgradePending() && $upgrader->isUpgradable()) { $version = $upgrader->getNextVersion(); if($upgrader->upgrade()) { //We're simply reporting progress here - call back will report next action' Http::response(200, "Upgraded to $version ... post-upgrade checks!"); exit; } -} elseif(!$cfg->isUpgradePending()) { +} elseif(!$ost->isUpgradePending()) { $upgrader->setState('done'); session_write_close(); header("HTTP/1.1 304 Not Modified"); diff --git a/setup/upgrade.php b/setup/upgrade.php index 0406383707cfe245fd11aae9323ee1422d6d679e..e5fd21084ccb534167d681ee6288793d5a683296 100644 --- a/setup/upgrade.php +++ b/setup/upgrade.php @@ -48,7 +48,7 @@ if($_POST && $_POST['s'] && !$upgrader->isAborted()) { switch(strtolower($_POST['s'])) { case 'prereq': //XXX: check if it's upgradable version?? - if(!$cfg->isUpgradePending()) + if(!$ost->isUpgradePending()) $errors['err']=' Nothing to do! System already upgraded to the current version'; elseif(!$upgrader->isUpgradable()) $errors['err']='The upgrader does NOT support upgrading from the current vesion!'; @@ -60,9 +60,9 @@ if($_POST && $_POST['s'] && !$upgrader->isAborted()) { case 'upgrade': //Manual upgrade.... when JS (ajax) is not supported. if($upgrader->getNumPendingTasks()) { $upgrader->doTasks(); - } elseif($cfg->isUpgradePending() && $upgrader->isUpgradable()) { + } elseif($ost->isUpgradePending() && $upgrader->isUpgradable()) { $upgrader->upgrade(); - } elseif(!$cfg->isUpgradePending()) { + } elseif(!$ost->isUpgradePending()) { $upgrader->setState('done'); } @@ -89,7 +89,7 @@ switch(strtolower($upgrader->getState())) { $inc='upgrade-prereq.inc.php'; if($upgrader->isAborted()) $inc='upgrade-aborted.inc.php'; - elseif(!$cfg->isUpgradePending()) + elseif(!$ost->isUpgradePending()) $errors['err']='Nothing to do! System already upgraded to the latest version'; elseif(!$upgrader->isUpgradable()) $errors['err']='The upgrader does NOT support upgrading from the current vesion!';