mirror of
https://github.com/coollabsio/coolify.git
synced 2026-08-24 10:05:47 -05:00
52 lines
1.5 KiB
PHP
52 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire\Team;
|
|
|
|
use App\Models\TeamInvitation;
|
|
use App\Models\User;
|
|
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
|
use Illuminate\Support\Facades\DB;
|
|
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);
|
|
$invitationEmail = $invitation->email;
|
|
$invitationUuid = $invitation->uuid;
|
|
DB::transaction(function () use ($invitation): void {
|
|
$user = User::whereEmail($invitation->email)->first();
|
|
if (filled($user)) {
|
|
$user->deleteIfNotVerifiedAndForcePasswordReset();
|
|
}
|
|
|
|
$invitation->delete();
|
|
});
|
|
auditLog('ui.team_invitation.revoked', [
|
|
'team_id' => currentTeam()->id,
|
|
'invitation_uuid' => $invitationUuid,
|
|
'invitation_email' => $invitationEmail,
|
|
]);
|
|
$this->refreshInvitations();
|
|
$this->dispatch('success', 'Invitation revoked.');
|
|
} catch (\Exception) {
|
|
return $this->dispatch('error', 'Invitation not found.');
|
|
}
|
|
}
|
|
|
|
public function refreshInvitations()
|
|
{
|
|
$this->invitations = TeamInvitation::ownedByCurrentTeam()->get();
|
|
}
|
|
}
|