protected function generateEmail(OAuthInterface $oauth) { $email = $oauth->getEmail(); if (!$email) { $email = $oauth->getOwner() . '-' . $oauth->getUsername() . '@' . ''; } return $email; }
public function loadUserByOAuth(OAuthInterface $oauth) { if ($user = $oauth->getUser()) { return $user; } $manager = $this->container->get('fos_user.user_manager'); $user = $manager->createUser(); $user->setUsername($oauth->getUsername()); return $user; }
public function connect(OAuthInterface $oauth, UserInterface $user = null) { if (!$user) { $user = $this->userManager->createUser(); $user->setUsernameCanonical($oauth->getUsername()); $user->setUsername($oauth->getNickname()); $user->setEmail($this->generateEmail($oauth)); $user->setAvatar($oauth->getAvatar()); $user->setCreatedSource($oauth->getOwner()); $user->setEnabled(true); $this->userManager->updateUser($user); } else { if ($user->hasOAuth($oauth->getOwner())) { new \LogicException(sprintf('User %s is already connect %s oauth', $user->getUsername(), $oauth->getOwner())); } } $oauth->setUser($user); $this->oauthManager->updateOAuth($oauth); return $user; }