Back to CMSApplication class

Method redirectIfTwoFactorAuthenticationRequired

protected void
redirectIfTwoFactorAuthenticationRequired
()
Redirects user to his Two Factor Authentication setup page
Returns
  • void
Since
  • 4.0.0

Method redirectIfTwoFactorAuthenticationRequired - Source code

/**
 * Redirects user to his Two Factor Authentication setup page
 *
 * @return void
 *
 * @since  4.0.0
 */
protected function redirectIfTwoFactorAuthenticationRequired() : void
{
    $option = $this->input->get('option');
    $task = $this->input->get('task');
    $view = $this->input->get('view', null, 'STRING');
    $layout = $this->input->get('layout', null, 'STRING');
    if ($this->isClient('site')) {
        // If user is already on edit profile screen or press update/apply button, do nothing to avoid infinite redirect
        if ($option === 'com_users' && \in_array($task, ['profile.edit', 'profile.save', 'profile.apply', 'user.logout', 'user.menulogout'], true) || $option === 'com_users' && $view === 'profile' && $layout === 'edit') {
            return;
        }
        // Redirect to com_users profile edit
        $this->enqueueMessage(Text::_('JENFORCE_2FA_REDIRECT_MESSAGE'), 'notice');
        $this->redirect('index.php?option=com_users&view=profile&layout=edit');
    }
    if ($option === 'com_users' && \in_array($task, ['user.save', 'user.edit', 'user.apply', 'user.logout', 'user.menulogout'], true) || $option === 'com_users' && $view === 'user' && $layout === 'edit' || $option === 'com_login' && \in_array($task, ['save', 'edit', 'apply', 'logout', 'menulogout'], true)) {
        return;
    }
    // Redirect to com_admin profile edit
    $this->enqueueMessage(Text::_('JENFORCE_2FA_REDIRECT_MESSAGE'), 'notice');
    $this->redirect('index.php?option=com_users&task=user.edit&id=' . $this->getIdentity()->id);
}