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);
 }