Beispiel #1
0
 /**
  * Create new user if it does not exists.
  *
  * @param  Provider
  * @param  \Laravel\Socialite\Contracts\User
  * @return User
  */
 public static function findOrCreate(Provider $provider, SocialUser $socialUser)
 {
     // If user already exists reuse it
     $user = self::where(['uuid' => $socialUser->getId(), 'provider_id' => $provider->id])->withTrashed()->first();
     if ($user) {
         return $user;
     }
     // Create a new user
     $user = new static();
     $user->uuid = $socialUser->getId();
     $user->name = $socialUser->getName();
     $user->nickname = $socialUser->getNickname();
     $user->email = $socialUser->getEmail();
     $user->avatar = $socialUser->getAvatar();
     $user->provider_id = $provider->id;
     $user->language_id = app('language')->id;
     $user->role_id = Role::whereIsDefault(true)->firstOrFail()->id;
     $user->save();
     return $user;
 }