mailwolt/app/Livewire/Ui/System/Modal/UserDeleteModal.php

43 lines
1.1 KiB
PHP

<?php
namespace App\Livewire\Ui\System\Modal;
use App\Models\User;
use LivewireUI\Modal\ModalComponent;
class UserDeleteModal extends ModalComponent
{
public int $userId;
public string $userName = '';
public function mount(int $userId): void
{
$user = User::findOrFail($userId);
$this->userId = $userId;
$this->userName = $user->name;
}
public function delete(): void
{
if ($this->userId === auth()->id()) {
$this->dispatch('toast', type: 'error', badge: 'Benutzer',
title: 'Fehler', text: 'Du kannst deinen eigenen Account nicht löschen.', duration: 5000);
$this->closeModal();
return;
}
User::findOrFail($this->userId)->delete();
$this->dispatch('toast', type: 'done', badge: 'Benutzer',
title: 'Gelöscht', text: "Benutzer <b>{$this->userName}</b> wurde entfernt.", duration: 4000);
$this->dispatch('$refresh');
$this->closeModal();
}
public function render()
{
return view('livewire.ui.system.modal.user-delete-modal');
}
}