/** * Restores current request to session. * @param string key * @return void */ public function restoreRequest($key) { $session = $this->session->getSection('Nette.Application/requests'); if (isset($session[$key])) { $request = clone $session[$key]; unset($session[$key]); $request->setFlag(NPresenterRequest::RESTORED, TRUE); $this->presenter->sendResponse(new NForwardResponse($request)); } }
/** * Returns and initializes $this->section. * @return NSessionSection */ protected function getSessionSection($need) { if ($this->section !== NULL) { return $this->section; } if (!$need && !$this->session->exists()) { return NULL; } $this->section = $section = $this->session->getSection('Nette.Web.User/' . $this->namespace); if (!$section->identity instanceof IIdentity || !is_bool($section->authenticated)) { $section->remove(); } if ($section->authenticated && $section->expireBrowser && !$section->browserCheck) { // check if browser was closed? $section->reason = self::BROWSER_CLOSED; $section->authenticated = FALSE; $this->onLoggedOut($this); if ($section->expireIdentity) { unset($section->identity); } } if ($section->authenticated && $section->expireDelta > 0) { // check time expiration if ($section->expireTime < time()) { $section->reason = self::INACTIVITY; $section->authenticated = FALSE; $this->onLoggedOut($this); if ($section->expireIdentity) { unset($section->identity); } } $section->expireTime = time() + $section->expireDelta; // sliding expiration } if (!$section->authenticated) { unset($section->expireTime, $section->expireDelta, $section->expireIdentity, $section->expireBrowser, $section->browserCheck, $section->authTime); } return $this->section; }