49 lines
1.4 KiB
PHP
49 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire\Admin;
|
|
|
|
use App\Models\Instance;
|
|
use LivewireUI\Modal\ModalComponent;
|
|
|
|
/**
|
|
* Confirmation before an operator restarts a customer's machine (R23).
|
|
*
|
|
* The customer is not asked and may be working in it, so the address is spelled
|
|
* out in the question — an operator confirming a restart should be reading the
|
|
* hostname of the cloud that is about to go away, not the position of a row in a
|
|
* paginated table.
|
|
*
|
|
* No mutation here. Instances::restart() keeps the work and both authorisation
|
|
* checks it already had.
|
|
*/
|
|
class ConfirmRestartInstance extends ModalComponent
|
|
{
|
|
public string $uuid;
|
|
|
|
public string $address = '';
|
|
|
|
public function mount(string $uuid): void
|
|
{
|
|
// A modal is reachable without the page's own route middleware (R20), so
|
|
// it resolves the record itself rather than trusting a property the
|
|
// browser hydrated.
|
|
$instance = Instance::query()->where('uuid', $uuid)->firstOrFail();
|
|
|
|
$this->uuid = $uuid;
|
|
$this->address = $instance->domainIsVerified()
|
|
? (string) $instance->custom_domain
|
|
: (string) $instance->subdomain;
|
|
}
|
|
|
|
public function proceed(): void
|
|
{
|
|
$this->dispatch('instance-restart-confirmed', uuid: $this->uuid);
|
|
$this->closeModal();
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
return view('livewire.admin.confirm-restart-instance');
|
|
}
|
|
}
|