Files
coolify/app/Livewire/Security/IntegrationTokens.php
T
Andras Bacsai c1f29beff1 feat(audit): expose team events and log integration actions
Add an admin-only audit-events API endpoint and restrict audit-log UI access. Record integration token and secret manager changes, key access, and references in audit events.
2026-08-24 07:56:21 +02:00

58 lines
1.6 KiB
PHP

<?php
namespace App\Livewire\Security;
use App\Models\IntegrationToken;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Livewire\Attributes\On;
use Livewire\Component;
class IntegrationTokens extends Component
{
use AuthorizesRequests;
public $tokens;
public function mount(): void
{
$this->authorize('viewAny', IntegrationToken::class);
$this->loadTokens();
}
#[On('integrationTokenAdded')]
public function loadTokens(): void
{
$this->tokens = IntegrationToken::ownedByCurrentTeam()->latest()->get();
}
public function deleteToken(int $tokenId, string $password = ''): void
{
$token = IntegrationToken::ownedByCurrentTeam()->findOrFail($tokenId);
$this->authorize('delete', $token);
if ($token->secretManagerLinks()->exists()) {
$this->dispatch('error', 'This token is used by one or more resources as a secret manager source. Remove those links first.');
return;
}
$tokenUuid = $token->uuid;
$tokenName = $token->name;
$provider = $token->provider;
$token->delete();
auditLog('ui.integration_token.deleted', [
'team_id' => currentTeam()->id,
'integration_token_uuid' => $tokenUuid,
'integration_token_name' => $tokenName,
'provider' => $provider,
]);
$this->loadTokens();
$this->dispatch('success', 'Integration token deleted successfully.');
}
public function render()
{
return view('livewire.security.integration-tokens');
}
}