Server : LiteSpeed System : Linux server 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64 User : alsaif ( 1057) PHP Version : 7.4.33 Disable Function : show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/alsaif/public_html/administrator/components/com_installer/controllers/ |
<?php
/**
* @package Joomla.Administrator
* @subpackage com_installer
*
* @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Installer controller for Joomla! installer class.
*
* @since 1.5
*/
class InstallerControllerInstall extends JControllerLegacy
{
/**
* Install an extension.
*
* @return boolean
*
* @since 1.5
*/
public function install()
{
// Check for request forgeries.
$this->checkToken();
if (!JFactory::getUser()->authorise('core.admin'))
{
throw new JAccessExceptionNotallowed(JText::_('JERROR_ALERTNOAUTHOR'), 403);
}
/** @var InstallerModelInstall $model */
$model = $this->getModel('install');
// TODO: Reset the users acl here as well to kill off any missing bits.
$result = $model->install();
$app = JFactory::getApplication();
$redirect_url = $app->getUserState('com_installer.redirect_url');
if (!$redirect_url)
{
$redirect_url = base64_decode($app->input->get('return', null, 'BASE64'));
}
// Don't redirect to an external URL.
if (!JUri::isInternal($redirect_url))
{
$redirect_url = '';
}
if (empty($redirect_url))
{
$redirect_url = JRoute::_('index.php?option=com_installer&view=install', false);
}
else
{
// Wipe out the user state when we're going to redirect.
$app->setUserState('com_installer.redirect_url', '');
$app->setUserState('com_installer.message', '');
$app->setUserState('com_installer.extension_message', '');
}
$this->setRedirect($redirect_url);
return $result;
}
/**
* Install an extension from drag & drop ajax upload.
*
* @return void
*
* @since 3.7.0
*/
public function ajax_upload()
{
// Check for request forgeries.
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
if (!JFactory::getUser()->authorise('core.admin'))
{
throw new JAccessExceptionNotallowed(JText::_('JERROR_ALERTNOAUTHOR'), 403);
}
$app = JFactory::getApplication();
$message = $app->getUserState('com_installer.message');
// Do install
$result = $this->install();
// Get redirect URL
$redirect = $this->redirect;
// Push message queue to session because we will redirect page by Javascript, not $app->redirect().
// The "application.queue" is only set in redirect() method, so we must manually store it.
$app->getSession()->set('application.queue', $app->getMessageQueue());
header('Content-Type: application/json');
echo new JResponseJson(array('redirect' => $redirect), $message, !$result);
exit();
}
}