/**
* 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);
}