Back to AdministratorApplication class

Method findOption

public string
findOption
()
Return the application option string [main component].
Returns
  • string The component to access.
Since
  • 4.0.0

Method findOption - Source code

/**
 * Return the application option string [main component].
 *
 * @return  string  The component to access.
 *
 * @since   4.0.0
 */
public function findOption() : string
{
    /** @var self $app */
    $app = Factory::getApplication();
    $option = strtolower($app->input->get('option', ''));
    $user = $app->getIdentity();
    /**
     * Special handling for guest users and authenticated users without the Backend Login privilege.
     *
     * If the component they are trying to access is in the $this->allowedUnprivilegedOptions array we allow the
     * request to go through. Otherwise we force com_login to be loaded, letting the user (re)try authenticating
     * with a user account that has the Backend Login privilege.
     */
    if ($user->get('guest') || !$user->authorise('core.login.admin')) {
        $option = in_array($option, $this->allowedUnprivilegedOptions) ? $option : 'com_login';
    }
    /**
     * If no component is defined in the request we will try to load com_cpanel, the administrator Control Panel
     * component. This allows the /administrator URL to display something meaningful after logging in instead of an
     * error.
     */
    if (empty($option)) {
        $option = 'com_cpanel';
    }
    /**
     * Force the option to the input object. This is necessary because we might have force-changed the component in
     * the two if-blocks above.
     */
    $app->input->set('option', $option);
    return $option;
}