* [ * 'conditional_function' => function (array $userInfo) {}, * 'url' => '', * ] * * conditional_function returns false to redirect to the url and returns true to continue with the classical login. * * @param HookConditionalLoginEventInterface $hook * * @return array */ public function hookConditionalLogin(HookConditionalLoginEventInterface $hook) { return [ 'conditional_function' => function (array $userInfo) { $isEnrolled = WhispeakAuthPlugin::checkUserIsEnrolled($userInfo['user_id']); if (!$isEnrolled) { return true; } $user2fa = (int) ChamiloSession::read(WhispeakAuthPlugin::SESSION_2FA_USER, 0); if ($user2fa === (int) $userInfo['user_id']) { ChamiloSession::erase(WhispeakAuthPlugin::SESSION_2FA_USER); return true; } ChamiloSession::write(WhispeakAuthPlugin::SESSION_2FA_USER, $userInfo['user_id']); return false; }, 'url' => api_get_path(WEB_PLUGIN_PATH).$this->getPluginName().'/authentify.php', ]; } }