File Manager

Current Directory: /home/astoriaah/www/old15/components/com_akeeba/controllers
Viewing File: /home/astoriaah/www/old15/components/com_akeeba/controllers/light.php
<?php /** * @package AkeebaBackup * @copyright Copyright (c)2009-2014 Nicholas K. Dionysopoulos * @license GNU General Public License version 2, or later * * @since 2.1 */ // Protect from unauthorized access defined('_JEXEC') or die(); defined('AKEEBA_BACKUP_ORIGIN') or define('AKEEBA_BACKUP_ORIGIN', 'lite'); use Akeeba\Engine\Factory; use Akeeba\Engine\Platform; class AkeebaControllerLight extends F0FController { public function __construct($config = array()) { $config['csrf_protection'] = false; parent::__construct($config); } public function execute($task) { // Enforce raw mode - I need to be in full control! $document = JFactory::getDocument(); if ($document->getType() != 'raw') { $url = JUri::base() . 'index.php?option=com_akeeba&view=light&format=raw'; $this->setRedirect($url); $this->redirect(); return true; } // Map default/unknown tasks to "browse" if ( !in_array($task, array('authenticate', 'step', 'error', 'done'))) { $task = 'browse'; } parent::execute($task); } /** * Controller for the default task (login & profile selection) */ public function browse() { $febEnabled = Platform::getInstance()->get_platform_configuration_option('frontend_enable', 0) != 0; if ( !$febEnabled) { JError::raiseError('500', 'Access Denied'); } parent::display(false); } /** * Tries to authenticate the user and start the backup, or send him back to the default task */ public function authenticate() { // Enforce raw mode - I need to be in full control! if ( !$this->_checkPermissions()) { parent::redirect(); } else { $session = JFactory::getSession(); $session->set('litemodeauthorized', 1, 'akeeba'); $this->_setProfile(); JLoader::import('joomla.utilities.date'); Factory::resetState(array( 'maxrun' => 0 )); Factory::getFactoryStorage()->reset(AKEEBA_BACKUP_ORIGIN); Factory::loadState(AKEEBA_BACKUP_ORIGIN); $kettenrad = Factory::getKettenrad(); $dateNow = new JDate(); /* $user = JFactory::getUser(); $userTZ = $user->getParam('timezone',0); $dateNow->setOffset($userTZ); */ $description = JText::_('BACKUP_DEFAULT_DESCRIPTION') . ' ' . $dateNow->format(JText::_('DATE_FORMAT_LC2'), true); $options = array( 'description' => $description, 'comment' => '' ); $kettenrad->setup($options); $ret = $kettenrad->tick(); Factory::saveState(AKEEBA_BACKUP_ORIGIN); JFactory::getApplication() ->redirect(JUri::base() . 'index.php?option=com_akeeba&view=light&task=step&key=' . urlencode($this->input->get('key', '', 'none', 2)) . '&profile=' . $this->input->get('profile', 1, 'int') . '&format=raw'); } } /** * Step through the backup, informing user of the progress */ public function step() { $key = $this->input->get('key', '', 'none', 2); if ( !$this->_checkPermissions()) { parent::redirect(); return true; } $model = $this->getThisModel(); $model->setState('key', $key); Factory::loadState(AKEEBA_BACKUP_ORIGIN); $kettenrad = Factory::getKettenrad(); $array = $kettenrad->getStatusArray(); if ($array['Error'] != '') { // An error occured $this->setRedirect(JUri::base() . 'index.php?option=com_akeeba&view=light&format=raw&key=' . urlencode($key) . '&task=error&error=' . urlencode($array['Error'])); parent::redirect(); } elseif ($array['HasRun'] == 1) { // All done $this->setRedirect(JUri::base() . 'index.php?option=com_akeeba&view=light&format=raw&key=' . urlencode($key) . '&task=done'); parent::redirect(); } else { $kettenrad->tick(); Factory::saveState(AKEEBA_BACKUP_ORIGIN); parent::display(); } } /** * Informs the user of an error condition (poor soul, he can't fix it w/out backend access) */ public function error() { if ( !$this->_checkPermissions()) { parent::redirect(); return true; } $model = $this->getThisModel(); $error = JRequest::getString('error', '', $this->input); $model->setState('error', $error); parent::display(); } /** * Informs the user that all is done */ public function done() { if ( !$this->_checkPermissions()) { parent::redirect(); return true; } parent::display(); } /** * Check that the user has sufficient permissions, or die in error * */ private function _checkPermissions() { // Is frontend backup enabled? $febEnabled = Platform::getInstance()->get_platform_configuration_option('frontend_enable', 0) != 0; if ( !$febEnabled) { $message = JText::_('ERROR_NOT_ENABLED'); $this->setRedirect(JUri::base() . 'index.php?option=com_akeeba&view=light&format=raw', $message, 'error'); return false; } // Is the key good? $key = $this->input->get('key', '', 'none', 2); $validKey = Platform::getInstance()->get_platform_configuration_option('frontend_secret_word', ''); $validKeyTrim = trim($validKey); if (($key != $validKey) || (empty($validKeyTrim))) { $message = JText::_('ERROR_INVALID_KEY'); $this->setRedirect(JUri::base() . 'index.php?option=com_akeeba&view=light&format=raw', $message, 'error'); return false; } return true; } private function _setProfile() { // Set profile $profile = $this->input->get('profile', 1, 'int'); if ( !is_numeric($profile)) { $profile = 1; } $session = JFactory::getSession(); $session->set('profile', $profile, 'akeeba'); // Reload registry $registry = Factory::getConfiguration(); Platform::getInstance()->load_configuration(); } }