public function onKernelResponse(FilterResponseEvent $event)
 {
     $request = $event->getRequest();
     $response = $event->getResponse();
     $responseCode = $response->getStatusCode();
     $annotations = $this->getLoggableAnnotations($request);
     if (is_array($annotations)) {
         foreach ($annotations as $annotation) {
             $actionLogId = $annotation->getActionLogId();
             $this->logger->updateResponseCode($actionLogId, $responseCode);
         }
     }
 }
 public function onSwitchUser(SwitchUserEvent $event)
 {
     $tokenStorage = $this->tokenStorage;
     $authChecker = $this->authChecker;
     $target = $event->getTargetUser();
     if ($authChecker->isGranted('ROLE_PREVIOUS_ADMIN')) {
         // Impersonator is going back to normal
         foreach ($tokenStorage->getToken()->getRoles() as $role) {
             if ($role instanceof SwitchUserRole) {
                 $impersonator = $role->getSource()->getUser();
                 break;
             }
         }
         $isImpersonating = false;
     } else {
         // Impersonator is becoming the target user
         $impersonator = $this->tokenStorage->getToken()->getUser();
         $isImpersonating = true;
     }
     $controllerAction = array($this, 'onSwitchUser');
     $this->logger->registerImpersonate($event->getRequest(), $target, $impersonator, $controllerAction, $isImpersonating);
 }