CluPilotCloud/app/Livewire/Admin/ConfirmPinRelease.php

45 lines
1.2 KiB
PHP

<?php
namespace App\Livewire\Admin;
use LivewireUI\Modal\ModalComponent;
/**
* Rückfrage vor dem Festnageln (R23).
*
* Das Modal mutiert nichts: es löst `pin-release-confirmed` aus, und
* App\Livewire\Admin\Settings führt die Handlung mit ihrer eigenen
* Berechtigungsprüfung aus. Damit bleibt die Prüfung an der einen Stelle, an
* der sie schon stand, statt hier verdoppelt zu werden.
*
* Die Version kommt als Argument aus dem Auswahlfeld der Seite (R20: kein
* Modal fürs Auswahlfeld selbst, nur für die Bestätigung der Handlung). Ein
* Modal ist ohne die Route-Middleware der Seite erreichbar, deshalb prüft
* auch `mount()` die Berechtigung selbst statt sich auf die aufrufende Seite
* zu verlassen.
*/
class ConfirmPinRelease extends ModalComponent
{
public string $version = '';
public function mount(string $version = ''): void
{
$this->authorize('site.manage');
$this->version = $version;
}
public function confirm(): void
{
$this->authorize('site.manage');
$this->dispatch('pin-release-confirmed');
$this->closeModal();
}
public function render()
{
return view('livewire.admin.confirm-pin-release');
}
}