Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

UpdateConnectedAccount.php 1.3KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace App\Actions\FilamentCompanies;
  3. use Illuminate\Auth\Access\AuthorizationException;
  4. use Illuminate\Support\Facades\Gate;
  5. use Laravel\Socialite\Contracts\User;
  6. use Wallo\FilamentCompanies\ConnectedAccount;
  7. use Wallo\FilamentCompanies\Contracts\UpdatesConnectedAccounts;
  8. class UpdateConnectedAccount implements UpdatesConnectedAccounts
  9. {
  10. /**
  11. * Update a given connected account.
  12. *
  13. * @throws AuthorizationException
  14. */
  15. public function update(mixed $user, ConnectedAccount $connectedAccount, string $provider, User $providerUser): ConnectedAccount
  16. {
  17. Gate::forUser($user)->authorize('update', $connectedAccount);
  18. $connectedAccount->forceFill([
  19. 'provider' => strtolower($provider),
  20. 'provider_id' => $providerUser->getId(),
  21. 'name' => $providerUser->getName(),
  22. 'nickname' => $providerUser->getNickname(),
  23. 'email' => $providerUser->getEmail(),
  24. 'avatar_path' => $providerUser->getAvatar(),
  25. 'token' => $providerUser->token,
  26. 'secret' => $providerUser->tokenSecret ?? null,
  27. 'refresh_token' => $providerUser->refreshToken ?? null,
  28. 'expires_at' => property_exists($providerUser, 'expiresIn') ? now()->addSeconds($providerUser->expiresIn) : null,
  29. ])->save();
  30. return $connectedAccount;
  31. }
  32. }