CluPilotCloud/app/Livewire/Admin/CheckResult.php

50 lines
1.7 KiB
PHP

<?php
namespace App\Livewire\Admin;
use App\Services\Secrets\SecretVault;
use LivewireUI\Modal\ModalComponent;
/**
* Die Antwort einer Verbindungsprüfung, als Modal.
*
* Vorher stand sie am Seitenende, hinter allen Karten und hinter dem
* Speichern-Knopf. Der Testknopf sitzt oben in der Karte; wer ihn drückte, sah
* gar nichts, weil die Antwort ausserhalb des Bildschirms erschien. Gemeldet
* wurde das zweimal — erst als „der Knopf tut nichts", dann als „runterscrollen
* tut niemand, wenn man es nicht weiss".
*
* Das Ergebnis wird als Argument hereingereicht, nicht hier neu erhoben. Zwei
* Gründe: die Prüfung läuft gegen den EINGETIPPTEN, noch nicht gespeicherten
* Wert, den dieses Modal nicht sieht — und DnsTokenCheck schreibt bei jedem
* Lauf einen Probeeintrag in die echte Zone. Ein Modal, das beim Öffnen prüft,
* legte bei jedem Blick einen neuen an.
*
* Durch den Browser gereicht zu werden ist hier unbedenklich: das Ergebnis
* trägt Kontoname, Betriebsmodus und die Webhook-Liste — keinen Schlüssel.
*/
class CheckResult extends ModalComponent
{
public string $entryKey = '';
/** @var array<string, mixed> */
public array $result = [];
/** @param array<string, mixed> $result */
public function mount(string $entryKey, array $result): void
{
$this->authorize('secrets.manage');
abort_if(! array_key_exists($entryKey, SecretVault::REGISTRY), 404);
$this->entryKey = $entryKey;
$this->result = $result;
}
public function render()
{
return view('livewire.admin.check-result', [
'label' => __(SecretVault::REGISTRY[$this->entryKey]['label']),
]);
}
}