/** * Connect the user to Vanilla and continue to the default behavior * * @param Request $request * @param TokenInterface $token * * @return Response never null */ public function onAuthenticationSuccess(Request $request, TokenInterface $token) { $userManager = $this->vanillaKernel->getUserManager(); $sessionManager = $this->vanillaKernel->getSessionManager(); $vanillaUser = $userManager->findByUsername($token->getUsername()); if ($vanillaUser) { $vanillaUserId = $vanillaUser; } else { $builtModel = $this->userTransformer->createVanillaUser($token->getUser()); if (!$builtModel instanceof VanillaUser) { throw new \RuntimeException(sprintf('%s::createVanillaUser() must return a VanillaUser instance (%s given)', get_class($this->userTransformer), is_object($builtModel) ? get_class($builtModel) : gettype($builtModel))); } $vanillaUserId = $userManager->register($builtModel); } $sessionManager->login($vanillaUserId); $userManager->trackVisit($token->getUser()); return parent::onAuthenticationSuccess($request, $token); }
/** * Log out the Vanilla user and continue to the default behavior * * @param Request $request * * @return Response never null */ public function onLogoutSuccess(Request $request) { $this->vanillaKernel->getSessionManager()->logout(); return parent::onLogoutSuccess($request); }