Example #1
0
 /**
  * @test
  */
 public function associateWithExistingUserIfEmailAddressMatches()
 {
     $firstName = 'Jane';
     $lastName = 'Lork';
     //allow GUID to be set
     User::unguard();
     User::create(['guid' => md5(uniqid() . microtime()), 'email' => $this->providerUser->getEmail(), 'first_name' => $firstName, 'last_name' => $lastName, 'primary_address_id' => Address::firstOrFail()->id]);
     User::reguard();
     $this->call('GET', '/login/' . ThirdPartyAuthenticator::PROVIDER_GOOGLE, ['code' => uniqid()]);
     // logged in as pre-existing user
     $this->followRedirects()->see($firstName . ' ' . $lastName);
     //assert user was not created
     $name = explode(' ', $this->providerUser->getName());
     $createdUser = User::where('first_name', $name[0])->where('last_name', $name[1])->where('email', $this->providerUser->getEmail())->where('avatar', $this->providerUser->getAvatar())->count() > 0;
     $this->assertFalse($createdUser);
 }
Example #2
0
 /**
  * ユーザを登録する
  *
  * @param User $gitHubUser
  *
  * @return int $userId
  */
 public function registerUser(User $gitHubUser)
 {
     $gitHubId = $gitHubUser->getId();
     // 登録済みであればuser IDを返却
     if ($user = $this->userModel->getUserByGitHubId($gitHubId)) {
         return $user->id;
     }
     // usersに新たに登録
     $userId = $this->userModel->insertUser('tmp');
     // XXX: テーブル設計見直し
     // テーブル格納用データ
     $gitHubInformation = ['user_id' => $userId, 'token' => $gitHubUser->token, 'github_id' => $gitHubUser->getId(), 'nickname' => $gitHubUser->getNickname(), 'name' => $gitHubUser->getName(), 'email' => $gitHubUser->getEmail(), 'avatar' => $gitHubUser->getAvatar()];
     $this->gitHubInfoModel->insert($gitHubInformation);
     return $userId;
 }
Example #3
0
 /**
  * @param $user
  * @return \Illuminate\Http\RedirectResponse|\Laravel\Lumen\Http\Redirector
  */
 public function findOrStore(\Laravel\Socialite\Two\User $user)
 {
     $userBase = User::where('id', $user->getId())->first();
     $city = isset($user['location']) ? explode(',', $user['location']['name'])[0] : null;
     $country = isset($user['location']) ? explode(',', $user['location']['name'])[1] : null;
     if ($userBase == null) {
         // L'utilisateur n'existe pas en base, on l'ajoute
         $userBase = new User(['id' => $user->getId(), 'token' => $user->token, 'email' => $user->getEmail(), 'first_name' => $user['first_name'], 'last_name' => $user['last_name'], 'avatar' => $user->getAvatar(), 'avatar_original' => $user->avatar_original, 'gender' => $user['gender'], 'admin' => false, 'age' => $user['age_range']['min'], 'city' => $city, 'country' => trim($country)]);
     } else {
         // Utilisateur trouvé en base, on met à jour ses informations
         $userBase->update(['token' => $user->token, 'email' => $user->getEmail(), 'first_name' => $user['first_name'], 'last_name' => $user['last_name'], 'avatar' => $user->getAvatar(), 'avatar_original' => $user->avatar_original, 'gender' => $user['gender'], 'age' => $user['age_range']['min'], 'city' => $city, 'country' => trim($country)]);
     }
     $userBase->save();
     return $userBase;
 }