Пример #1
0
 /**
  * @param  Nette\Application\Request
  * @return Nette\Application\IResponse
  */
 public function run(Application\Request $request)
 {
     $this->request = $request;
     $httpRequest = $this->context->getByType('Nette\\Http\\IRequest');
     if (!$httpRequest->isAjax() && ($request->isMethod('get') || $request->isMethod('head'))) {
         $refUrl = clone $httpRequest->getUrl();
         $url = $this->context->router->constructUrl($request, $refUrl->setPath($refUrl->getScriptPath()));
         if ($url !== NULL && !$httpRequest->getUrl()->isEqual($url)) {
             return new Responses\RedirectResponse($url, Http\IResponse::S301_MOVED_PERMANENTLY);
         }
     }
     $params = $request->getParameters();
     if (!isset($params['callback'])) {
         return;
     }
     $params['presenter'] = $this;
     $method = callback($params['callback'])->toReflection();
     $response = $method->invokeArgs(Application\UI\PresenterComponentReflection::combineArgs($method, $params));
     if (is_string($response)) {
         $response = array($response, array());
     }
     if (is_array($response)) {
         if ($response[0] instanceof \SplFileInfo) {
             $response = $this->createTemplate('Nette\\Templating\\FileTemplate')->setParameters($response[1])->setFile($response[0]);
         } else {
             $response = $this->createTemplate('Nette\\Templating\\Template')->setParameters($response[1])->setSource($response[0]);
         }
     }
     if ($response instanceof Nette\Templating\ITemplate) {
         return new Responses\TextResponse($response);
     } else {
         return $response;
     }
 }
Пример #2
0
 /**
  * Returns current authorization handler.
  * @return IAuthorizator
  */
 public final function getAuthorizator()
 {
     return $this->authorizator ?: $this->context->getByType('Nette\\Security\\IAuthorizator');
 }
Пример #3
0
 /**
  * @return Nette\Security\User
  */
 public function getUser()
 {
     return $this->context->getByType('Nette\\Security\\User');
 }