/**
  * @param string $provider
  * @param OAuth2User $oauthUser
  * @param string $name
  * @param string $email
  * @param string $bio
  * @return User
  */
 public function create($provider, OAuth2User $oauthUser, $name = null, $email = null, $bio = null)
 {
     if ($email === null && $oauthUser->getEmail() == '' || $name === null && $oauthUser->getName() == '') {
         return;
     }
     $user = User::create($name ?: $oauthUser->getName(), $email ?: $oauthUser->getEmail(), $bio);
     $user->addProfile(SocialProfile::create($provider, $oauthUser, true));
     $this->repository->append($user);
     $message = $this->deliveryService->getMessageFromTemplate('Welcome', array('name' => $user->getName()));
     $message->setTo($user->getEmail());
     $this->deliveryService->send($message);
     return $user;
 }
示例#2
0
 /**
  * @param string $provider
  * @param OAuth2User $user
  * @param boolean $default
  * @return SocialProfile
  */
 public static function create($provider, OAuth2User $user, $default = false)
 {
     $avatar = $user->getAvatar();
     if (empty($avatar) && $user->getEmail() !== null) {
         $avatar = 'http://www.gravatar.com/avatar/' . md5($user->getEmail());
     }
     $profile = new static();
     $profile->setProvider($provider);
     $profile->setSocialId($user->getId());
     $profile->setName($user->getName());
     $profile->setEmail($user->getEmail());
     $profile->setUsername($user->getUsername());
     $profile->setAvatar($avatar);
     $profile->setDefault($default);
     return $profile;
 }