{{ __('Bitte kopieren Sie ihn jetzt, er wird später nicht erneut angezeigt.') }}
{{-- Token-Anzeige: dunkler Hintergrund konstant in Light + Dark (deshalb panel-dark-2 statt --color-ink, das im Dark Mode hell wird). --}}{{ $plainTextToken }}
*/ public array $selectedAbilities = ['press-releases:read']; public ?string $plainTextToken = null; public ?string $notification = null; public ?string $eligibilityMessage = null; private const ABILITIES = [ 'press-releases:read' => 'Pressemitteilungen lesen', 'press-releases:write' => 'Pressemitteilungen erstellen und bearbeiten', 'press-release-images:write' => 'Bilder zu Pressemitteilungen verwalten', 'companies:read' => 'Firmendaten lesen', 'newsletter:subscribe' => 'Newsletter-Anmeldungen auslösen', ]; public function createToken(): void { $eligibility = app(ApiAccessEligibilityService::class); $denialReason = $eligibility->denialReason(auth()->user()); if ($denialReason !== null) { $this->plainTextToken = null; $this->eligibilityMessage = __($denialReason); return; } $validated = $this->validate([ 'tokenName' => ['required', 'string', 'max:80'], 'selectedAbilities' => ['required', 'array', 'min:1'], 'selectedAbilities.*' => ['required', 'string', Rule::in(array_keys(self::ABILITIES))], ]); $token = auth()->user()->createToken( $validated['tokenName'], $validated['selectedAbilities'], ); $this->plainTextToken = $token->plainTextToken; $this->notification = __('Token wurde erstellt. Bitte kopieren Sie ihn jetzt, er wird später nicht erneut angezeigt.'); $this->eligibilityMessage = null; $this->tokenName = ''; $this->selectedAbilities = ['press-releases:read']; } public function revokeToken(int $tokenId): void { auth()->user() ->tokens() ->whereKey($tokenId) ->delete(); $this->plainTextToken = null; $this->notification = __('Token wurde widerrufen.'); } public function with(): array { $eligibility = app(ApiAccessEligibilityService::class); $denialReason = $eligibility->denialReason(auth()->user()); return [ 'abilityOptions' => self::ABILITIES, 'canCreateApiToken' => $denialReason === null, 'apiTokenDenialReason' => $denialReason, 'tokens' => auth()->user() ->tokens() ->latest() ->get(['id', 'name', 'abilities', 'last_used_at', 'created_at']), ]; } }; ?>
{{ __('Erstellen und widerrufen Sie persönliche Tokens für die neue API v1.') }}
{{ __('Bitte kopieren Sie ihn jetzt, er wird später nicht erneut angezeigt.') }}
{{-- Token-Anzeige: dunkler Hintergrund konstant in Light + Dark (deshalb panel-dark-2 statt --color-ink, das im Dark Mode hell wird). --}}{{ $plainTextToken }}
{{ __('Erstellen Sie erst dann einen Token, wenn eine konkrete API-Integration ihn benötigt.') }}