Ejemplo n.º 1
0
 /**
  * @param UserResponseInterface|ResourceResponse $response
  *
  * @return UserInterface
  */
 protected function createUserByOAuthUserResponse(UserResponseInterface $response)
 {
     /** @var DoSUserInterface $user */
     $user = $this->userFactory->createNew();
     /** @var CustomerInterface $customer */
     $customer = $this->customerFactory->createNew();
     // set default values taken from OAuth sign-in provider account
     // todo: check security configuration provide by `fos....username_email`
     if (null === $response->getEmail()) {
         throw new AccountNoEmailException();
     }
     // set default values taken from OAuth sign-in provider account
     if (null !== ($email = $response->getEmail())) {
         $customer->setEmail($email);
     }
     if (!$user->getUsername()) {
         $user->setUsername($response->getEmail() ?: $response->getNickname());
     }
     // set random password to prevent issue with not nullable field & potential security hole
     $user->setPlainPassword(substr(sha1($response->getAccessToken()), 0, 10));
     $user->setDisplayName($response->getNickname());
     $user->setLocale($response->getLocale());
     $user->setCustomer($customer);
     $user->confirmed();
     $customer->setFirstName($response->getFirstName());
     $customer->setLastName($response->getLastName());
     $customer->setGender($response->getGender() ?: CustomerInterface::UNKNOWN_GENDER);
     $customer->setBirthday($response->getBirthday());
     return $this->updateUserByOAuthUserResponse($user, $response);
 }
 /**
  * {@inheritdoc}
  */
 public function loadUserByOAuthUserResponse(UserResponseInterface $response)
 {
     $user = new WebHomeUser($response->getNickname(), null, $response->getFirstName(), $response->getLastName(), $response->getLocale(), $response->getAccessToken(), $response->getRefreshToken());
     $user->initRolesAndApplications($response->getRoles());
     return $user;
 }
 protected function loadTwitterUser(UserResponseInterface $response)
 {
     $user = $this->userManager->createUser();
     $user->setUsername($response->getUsername());
     $user->setEmail($response->getEmail());
     $user->setLastName($response->getRealName());
     $user->setFirstName($response->getNickName());
     $user->setType($response->getResourceOwner()->getName());
     $user->setAccessToken($response->getAccessToken());
     $user->setLocale($response->getLocale());
     if (is_null($user->getLocale())) {
         $user->setLocale('fr');
     }
     $user->setRoles(['ROLE_USER']);
     $user->setPassword('');
     $user->setEnabled(true);
     $user->setCreatedAt(new \DateTime());
     $user->setUpdatedAt(new \DateTime());
     $this->userManager->updateUser($user);
     return $user;
 }