/** * @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; }
/** * @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; }