42 lines
1.1 KiB
PHP
42 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire\Team;
|
|
|
|
use App\Models\TeamInvitation;
|
|
use App\Models\User;
|
|
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
|
use Livewire\Component;
|
|
|
|
class Invitations extends Component
|
|
{
|
|
use AuthorizesRequests;
|
|
|
|
public $invitations;
|
|
|
|
protected $listeners = ['refreshInvitations'];
|
|
|
|
public function deleteInvitation(int $invitation_id)
|
|
{
|
|
try {
|
|
$this->authorize('manageInvitations', currentTeam());
|
|
|
|
$invitation = TeamInvitation::ownedByCurrentTeam()->findOrFail($invitation_id);
|
|
$user = User::whereEmail($invitation->email)->first();
|
|
if (filled($user)) {
|
|
$user->deleteIfNotVerifiedAndForcePasswordReset();
|
|
}
|
|
|
|
$invitation->delete();
|
|
$this->refreshInvitations();
|
|
$this->dispatch('success', 'Invitation revoked.');
|
|
} catch (\Exception) {
|
|
return $this->dispatch('error', 'Invitation not found.');
|
|
}
|
|
}
|
|
|
|
public function refreshInvitations()
|
|
{
|
|
$this->invitations = TeamInvitation::ownedByCurrentTeam()->get();
|
|
}
|
|
}
|