50 lines
1.7 KiB
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']),
|
|
]);
|
|
}
|
|
}
|