%PDF- %PDF-
Direktori : /var/softaculous/joomla4/ |
Current File : //var/softaculous/joomla4/sign_on.php |
<?php @unlink(__FILE__); // Validate if the request is from Softaculous if($_REQUEST['pass'] != '[[autopass]]'){ die("Unauthorized Access"); } define('_JEXEC', 1); // Joomla 4.x if(file_exists(__DIR__ . '/administrator/includes/app.php')){ ob_start(); require_once __DIR__ . '/administrator/includes/app.php'; }else{ // Joomla 3.x if (file_exists(__DIR__ . '/defines.php')) { include_once __DIR__ . '/defines.php'; } if (!defined('_JDEFINES')) { define('JPATH_BASE', __DIR__ . DIRECTORY_SEPARATOR . 'administrator' ); require_once JPATH_BASE . '/includes/defines.php'; } require_once JPATH_BASE . '/includes/framework.php'; require_once JPATH_BASE . '/includes/helper.php'; require_once JPATH_BASE . '/includes/subtoolbar.php'; } $app = JFactory::getApplication('administrator'); // Check for a cookie if user is not logged in if(JFactory::getUser()->get('guest')){ $signon_user = '[[signon_username]]'; $options = array('action' => 'core.login.admin'); $instance = Joomla\CMS\User\User::getInstance(); $db = JFactory::getDbo(); if(!empty($signon_user) && !preg_match('/^\[\[(.*?)\]\]$/is', $signon_user)){ $id = (int) Joomla\CMS\User\UserHelper::getUserId($signon_user); }else{ $query = $db->getQuery(true); $query->select($db->quoteName('user_id')) ->from($db->quoteName('#__user_usergroup_map')) ->where($db->quoteName('group_id') . ' = 8' ); $db->setQuery($query); $users = $db->loadColumn(); $id = min($users); } if (!$id) { $app->redirect('administrator/index.php'); exit(); } $instance->load($id); // If the user is blocked, redirect with an error if ($instance->block == 1) { $app->redirect('administrator/index.php'); exit(); } $result = $instance->authorise($options['action']); // Mark the user as logged in $instance->guest = 0; $session = Joomla\CMS\Factory::getSession(); // Grab the current session ID $oldSessionId = $session->getId(); // Fork the session $session->fork(); $session->set('user', $instance); // Ensure the new session's metadata is written to the database $app->checkSession(); // Purge the old session $query = $db->getQuery(true) ->delete('#__session') ->where($db->quoteName('session_id') . ' = ' . $db->quoteBinary($oldSessionId)); $db->setQuery($query)->execute(); $instance->setLastVisit(); } $app->redirect('administrator/index.php'); exit();