/** * @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); }
/** * ユーザを登録する * * @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; }
public static function createUserForFacebookUser(Two\User $user) { return User::forceCreate(['id' => $user->getId(), 'username' => $user->getName(), 'avatar' => $user->getAvatar(), 'access_token' => $user->token]); }