'Mailboxen lesen', 'mailboxes:write' => 'Mailboxen schreiben', 'aliases:read' => 'Aliases lesen', 'aliases:write' => 'Aliases schreiben', 'domains:read' => 'Domains lesen', 'domains:write' => 'Domains schreiben', ]; public static function closeModalOnClickAway(): bool { return false; } public static function closeModalOnEscape(): bool { return false; } public static function closeModalOnEscapeIsForceful(): bool { return false; } public function create(): void { $this->validate([ 'name' => 'required|string|max:80', 'selected' => 'required|array|min:1', 'selected.*' => 'in:' . implode(',', array_keys(self::$availableScopes)), ], [ 'selected.required' => 'Bitte mindestens einen Scope auswählen.', 'selected.min' => 'Bitte mindestens einen Scope auswählen.', ]); $token = Auth::user()->createToken($this->name, $this->selected); $pat = $token->accessToken; if ($this->sandbox) { $pat->sandbox = true; $pat->save(); } $this->dispatch('token-created', plainText: $token->plainTextToken); $this->dispatch('openModal', component: 'ui.system.modal.api-key-show-modal', arguments: ['plainText' => $token->plainTextToken], ); } public function toggleAll(): void { if (count($this->selected) === count(self::$availableScopes)) { $this->selected = []; } else { $this->selected = array_keys(self::$availableScopes); } } public function render() { return view('livewire.ui.system.modal.api-key-create-modal', [ 'scopes' => self::$availableScopes, ]); } }