Author: Michaël Gallego (mic.gallego@gmail.com)
Inheritance: extends Zend\Stdlib\AbstractOptions
コード例 #1
0
 /**
  * @private
  * @param  MvcEvent $event
  * @return void
  */
 public function onError(MvcEvent $event)
 {
     // Do nothing if no error or if response is not HTTP response
     if (!$event->getParam('exception') instanceof UnauthorizedExceptionInterface || $event->getResult() instanceof HttpResponse || !$event->getResponse() instanceof HttpResponse) {
         return;
     }
     $router = $event->getRouter();
     if ($this->authenticationService->hasIdentity()) {
         if (!$this->options->getRedirectWhenConnected()) {
             return;
         }
         $redirectRoute = $this->options->getRedirectToRouteConnected();
     } else {
         $redirectRoute = $this->options->getRedirectToRouteDisconnected();
     }
     $uri = $router->assemble([], ['name' => $redirectRoute]);
     if ($this->options->getAppendPreviousUri()) {
         $redirectKey = $this->options->getPreviousUriQueryKey();
         $previousUri = $event->getRequest()->getUriString();
         $uri = $router->assemble([], ['name' => $redirectRoute, 'query' => [$redirectKey => $previousUri]]);
     }
     $response = $event->getResponse() ?: new HttpResponse();
     $response->getHeaders()->addHeaderLine('Location', $uri);
     $response->setStatusCode(302);
     $event->setResponse($response);
     $event->setResult($response);
 }
コード例 #2
0
 public function testSettersAndGetters()
 {
     $redirectStrategyOptions = new RedirectStrategyOptions(['redirect_when_connected' => false, 'redirect_to_route_connected' => 'foo', 'redirect_to_route_disconnected' => 'bar', 'append_previous_uri' => false, 'previous_uri_query_key' => 'redirect-to']);
     $this->assertFalse($redirectStrategyOptions->getRedirectWhenConnected());
     $this->assertEquals('foo', $redirectStrategyOptions->getRedirectToRouteConnected());
     $this->assertEquals('bar', $redirectStrategyOptions->getRedirectToRouteDisconnected());
     $this->assertFalse($redirectStrategyOptions->getAppendPreviousUri());
     $this->assertEquals('redirect-to', $redirectStrategyOptions->getPreviousUriQueryKey());
 }