/** * Go directly to url */ public function toSurveyAction() { if (!$this->_initToken()) { // Default option $this->_forward('index'); return; } $language = $this->locale->getLanguage(); try { $url = $this->token->getUrl($language, $this->currentUser->getUserId() ? $this->currentUser->getUserId() : $this->token->getRespondentId()); /************************ * Optional user logout * ************************/ if ($this->currentUser->isLogoutOnSurvey()) { $this->currentUser->unsetAsCurrentUser(); } // Redirect at once header('Location: ' . $url); exit; } catch (\Gems_Tracker_Source_SurveyNotFoundException $e) { $this->addMessage(sprintf($this->_('The survey for token %s is no longer active.'), strtoupper($this->tokenId))); // Default option $this->_forward('index'); } }