3
0
mirror of https://github.com/snipe/snipe-it.git synced 2026-04-05 23:38:39 +00:00
Files
snipe-it/app/Livewire/PersonalAccessTokens.php
2026-03-13 17:19:19 +00:00

54 lines
1.2 KiB
PHP

<?php
namespace App\Livewire;
use Illuminate\Support\Facades\Auth;
use Livewire\Component;
class PersonalAccessTokens extends Component
{
public $name;
public $newTokenString;
protected $listeners = ['openModal' => 'autoFocusModalEvent'];
// this is just an annoying thing to make the modal input autofocus
public function autoFocusModalEvent(): void
{
$this->dispatch('autoFocusModal');
}
public function render()
{
return view('livewire.personal-access-tokens', [
'tokens' => auth()->user()->tokens,
]);
}
public function rules(): array
{
return [
'name' => 'required|string|max:255',
];
}
public function createToken(): void
{
$this->validate();
$newToken = auth()->user()->createToken($this->name);
$this->newTokenString = $newToken->accessToken;
$this->dispatch('tokenCreated', token: $newToken->accessToken);
}
public function deleteToken($tokenId): void
{
// this needs safety (though the scope of auth::user might kind of do it...)
// seems like it does, test more
auth()->user()->tokens()->find($tokenId)?->delete();
}
}