public function onBeforeDispatch() { $result = parent::onBeforeDispatch(); if ($result) { // Clear com_modules and com_plugins cache (needed when we alter module/plugin state) $core_components = array('com_modules', 'com_plugins'); foreach ($core_components as $component) { try { $cache = JFactory::getCache($component); $cache->clean(); } catch (Exception $e) { // suck it up } } // Merge the language overrides $paths = array(JPATH_ROOT, JPATH_ADMINISTRATOR); $jlang = JFactory::getLanguage(); $jlang->load($this->component, $paths[0], 'en-GB', true); $jlang->load($this->component, $paths[0], null, true); $jlang->load($this->component, $paths[1], 'en-GB', true); $jlang->load($this->component, $paths[1], null, true); $jlang->load($this->component . '.override', $paths[0], 'en-GB', true); $jlang->load($this->component . '.override', $paths[0], null, true); $jlang->load($this->component . '.override', $paths[1], 'en-GB', true); $jlang->load($this->component . '.override', $paths[1], null, true); // Load Akeeba Strapper if (!defined('ADMINTOOLSMEDIATAG')) { $staticFilesVersioningTag = md5(ADMINTOOLS_VERSION . ADMINTOOLS_DATE); define('ADMINTOOLSMEDIATAG', $staticFilesVersioningTag); } include_once JPATH_ROOT . '/media/akeeba_strapper/strapper.php'; AkeebaStrapper::$tag = ADMINTOOLSMEDIATAG; AkeebaStrapper::bootstrap(); AkeebaStrapper::jQueryUI(); AkeebaStrapper::addCSSfile('media://com_admintools/css/backend.css'); // Work around non-transparent proxy and reverse proxy IP issues include_once JPATH_ADMINISTRATOR . '/components/com_admintools/helpers/ip.php'; if (class_exists('AdmintoolsHelperIp', false)) { AdmintoolsHelperIp::workaroundIPIssues(); } // Control Check $view = F0FInflector::singularize($this->input->getCmd('view', $this->defaultView)); if ($view == 'liveupdate') { $url = JUri::base() . 'index.php?option=com_admintools'; JFactory::getApplication()->redirect($url); return; } // ========== Master PW check ========== $model = F0FModel::getAnInstance('Masterpw', 'AdmintoolsModel'); if (!$model->accessAllowed($view)) { $url = $view == 'cpanel' ? 'index.php' : 'index.php?option=com_admintools&view=cpanel'; JFactory::getApplication()->redirect($url, JText::_('ATOOLS_ERR_NOTAUTHORIZED'), 'error'); return; } } return $result; }
if (!version_compare(JVERSION, '1.6.0', 'ge')) { define('ADMINTOOLS_JVERSION', '15'); } else { define('ADMINTOOLS_JVERSION', '16'); } } // If JSON functions don't exist, load our compatibility layer if (!function_exists('json_encode') || !function_exists('json_decode')) { require_once JPATH_COMPONENT_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'helpers' . DIRECTORY_SEPARATOR . 'jsonlib.php'; } JLoader::import('joomla.application.component.model'); require_once JPATH_ADMINISTRATOR . '/components/com_admintools/models/storage.php'; $paths = array(JPATH_ADMINISTRATOR, JPATH_ROOT); $jlang = JFactory::getLanguage(); $jlang->load('com_admintools', $paths[0], 'en-GB', true); $jlang->load('com_admintools', $paths[0], null, true); $jlang->load('com_admintools', $paths[1], 'en-GB', true); $jlang->load('com_admintools', $paths[1], null, true); $jlang->load('com_admintools' . '.override', $paths[0], 'en-GB', true); $jlang->load('com_admintools' . '.override', $paths[0], null, true); $jlang->load('com_admintools' . '.override', $paths[1], 'en-GB', true); $jlang->load('com_admintools' . '.override', $paths[1], null, true); // Force the view and task JRequest::setVar('view', 'blocks'); JRequest::setVar('task', 'browse'); // Work around non-transparent proxy and reverse proxy IP issues include_once JPATH_ADMINISTRATOR . '/components/com_admintools/helpers/ip.php'; if (class_exists('AdmintoolsHelperIp', false)) { AdmintoolsHelperIp::workaroundIPIssues(); } F0FDispatcher::getTmpInstance('com_admintools')->dispatch();
/** * Checks if the user's IP is contained in a list of IPs or IP expressions * * @param array $ipTable The list of IP expressions * * @return null|bool True if it's in the list, null if the filtering can't proceed */ public static function IPinList($ipTable = array()) { // Get our IP address $ip = static::getIp(); return AdmintoolsHelperIp::IPinList($ip, $ipTable); }
/** * Work around non-transparent proxy and reverse proxy IP issues * * @return void */ protected function workaroundIP() { include_once JPATH_ADMINISTRATOR . '/components/com_admintools/helpers/ip.php'; if (class_exists('AdmintoolsHelperIp', false)) { AdmintoolsHelperIp::workaroundIPIssues(); } }