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