53 lines
1.4 KiB
PHP
53 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire;
|
|
|
|
use App\Livewire\Concerns\ResolvesCustomer;
|
|
use App\Models\SecurityBlock;
|
|
use LivewireUI\Modal\ModalComponent;
|
|
|
|
/**
|
|
* Bestaetigung vorm Aufheben einer eigenen Sperre (R23).
|
|
*
|
|
* Mutiert nichts: Security::onReleaseConfirmed() bleibt die einzige Stelle,
|
|
* die tatsaechlich freigibt — und die eigene Pruefung dort wiederholt genau
|
|
* das, was hier schon steht, weil ein Modal ohne die Route-Middleware der
|
|
* Seite erreichbar ist (R20). Deshalb loest auch dieses Modal den Kunden
|
|
* selbst auf, statt der uebergebenen uuid zu vertrauen, und zeigt bei einer
|
|
* fremden oder einer Host-Sperre lieber 404 als deren Adresse.
|
|
*/
|
|
class ConfirmReleaseBlock extends ModalComponent
|
|
{
|
|
use ResolvesCustomer;
|
|
|
|
public string $uuid;
|
|
|
|
public string $ip = '';
|
|
|
|
public function mount(string $uuid): void
|
|
{
|
|
$customer = $this->customer();
|
|
|
|
$block = SecurityBlock::query()
|
|
->where('uuid', $uuid)
|
|
->whereHas('instance', fn ($q) => $q->where('customer_id', $customer?->id))
|
|
->first();
|
|
|
|
abort_if($block === null, 404);
|
|
|
|
$this->uuid = $uuid;
|
|
$this->ip = $block->ip;
|
|
}
|
|
|
|
public function confirm(): void
|
|
{
|
|
$this->dispatch('block-release-confirmed', uuid: $this->uuid);
|
|
$this->closeModal();
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
return view('livewire.confirm-release-block');
|
|
}
|
|
}
|