/**
  * Authenticates against the supplied adapter
  *
  * @? This is currently a BC break the original takes an auth adapter as a parameter. This still conforms to the interface though.
  *
  * @param array $authenticationContext
  * @return Result
  */
 public function authenticate($authenticationContext = [])
 {
     $event = new Authenticate();
     $event->setTarget($this);
     $event->setParams($authenticationContext);
     $event->setPreviousResult($this->getResult());
     $this->events->triggerEvent($event);
     $result = $event->getResult();
     if ($result->isValid()) {
         $event = new AuthenticationSucceeded();
     } else {
         $event = new AuthenticationFailed();
     }
     $event->setTarget($this);
     $event->setResult($result);
     $event->setParams($authenticationContext);
     $this->events->trigger($event);
     /**
      * ZF-7546 - prevent multiple successive calls from storing inconsistent results
      * Ensure storage has clean state
      */
     if ($this->hasIdentity()) {
         $this->clearIdentity();
     }
     $this->getStorage()->write($result);
     return $result;
 }
Ejemplo n.º 2
0
 /**
  * Handle an exception/throwable.
  *
  * @param Throwable|Exception $exception
  * @param MvcEvent $event
  * @param EventManagerInterface $events
  * @return self
  */
 private function handleException($exception, MvcEvent $event, EventManagerInterface $events)
 {
     $event->setName(MvcEvent::EVENT_DISPATCH_ERROR);
     $event->setError(self::ERROR_EXCEPTION);
     $event->setParam('exception', $exception);
     $result = $events->triggerEvent($event);
     $response = $result->last();
     if ($response instanceof ResponseInterface) {
         $event->setName(MvcEvent::EVENT_FINISH);
         $event->setTarget($this);
         $event->setResponse($response);
         $this->response = $response;
         $events->triggerEvent($event);
         return $this;
     }
     return $this->completeRequest($event);
 }
Ejemplo n.º 3
0
 /**
  * Trigger the "postDelete" event
  *
  * Triggers the "postDelete" event mapping the following parameters:
  * - $statement as "statement"
  * - $result as "result"
  *
  * @param  StatementInterface $statement
  * @param  ResultInterface $result
  * @return void
  */
 public function postDelete(StatementInterface $statement, ResultInterface $result)
 {
     $this->event->setName(static::EVENT_POST_DELETE);
     $this->event->setParams(['statement' => $statement, 'result' => $result]);
     $this->eventManager->triggerEvent($this->event);
 }