Avances con varias cosas~

This commit is contained in:
2025-01-17 08:31:59 -03:00
parent ee19e479f4
commit 5fc8e2bda1
21 changed files with 463 additions and 121 deletions

View File

@@ -0,0 +1,66 @@
<?php
namespace App\Livewire\Usuarios;
use App\Enums\RoleName;
use App\Models\Turno;
use App\Models\User;
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\Gate;
use Livewire\Attributes\Computed;
use Livewire\Component;
use TallStackUi\Traits\Interactions;
class Index extends Component
{
use Interactions;
public function render(): View
{
return view('livewire.usuarios.index');
}
public function confirmDelete($id): void
{
$user = User::find($id);
$this->authorize('delete', $user);
if ($user->roles()->where('name', RoleName::SuperAdmin)->exists()) {
$this->toast()->error('Error', 'No se puede eliminar un super administrador')->send();
return;
}
$this->dialog()->question('¿Esta seguro de eliminar este usuario?',
'No podra ser recuperado')
->confirm('Eliminar Usuario', method: 'doDelete', params: $id)
->cancel()
->send();
}
public function doDelete($id): void
{
$user = User::find($id);
$this->authorize('delete', $user);
$user->delete();
$this->toast()->success('Usuario eliminado correctamente')->send();
}
#[Computed]
public function headers(): array
{
return [
['index' => 'name', 'label' => 'Nombre'],
['index' => 'email', 'label' => 'Email'],
['index' => 'action', 'label' => 'Acciones'],
];
}
#[Computed]
public function rows(): LengthAwarePaginator
{
return User::paginate();
}
}