diff --git a/libraries/cms/application/administrator.php b/libraries/cms/application/administrator.php index 4bfbe9c99ba8c..3acc70a0b4410 100644 --- a/libraries/cms/application/administrator.php +++ b/libraries/cms/application/administrator.php @@ -469,18 +469,28 @@ protected function route() */ public function findOption() { - $option = strtolower($this->input->get('option')); - $this->loadIdentity(); - $user = $this->getIdentity(); + $app = JFactory::getApplication(); + $option = strtolower($app->input->get('option')); + $user = $app->getIdentity(); + + if (!$user) + { + $app->loadIdentity(JFactory::getUser()); + $user = $app->getIdentity(); + } + if ($user->get('guest') || !$user->authorise('core.login.admin')) { $option = 'com_login'; } + if (empty($option)) { $option = 'com_cpanel'; } - $this->input->set('option', $option); + + $app->input->set('option', $option); + return $option; } }