authentikate/app/Livewire/ManageUsers.php
Javier Feliz f7ee4baa61
Some checks failed
linter / quality (push) Successful in 3m5s
tests / ci (push) Has been cancelled
admin user policies
2025-08-01 22:29:35 -04:00

58 lines
1.3 KiB
PHP

<?php
namespace App\Livewire;
use App\Models\Invitation;
use App\Models\User;
use Flux\Flux;
use Illuminate\Database\Eloquent\Collection;
use Livewire\Component;
class ManageUsers extends Component
{
public string $invite_email = '';
public Collection $users;
public Collection $invitations;
public function mount()
{
// Only load data if user is authorized to view it
if (auth()->user()->can('viewAny', User::class)) {
$this->users = User::all();
$this->invitations = Invitation::all();
}
}
public function inviteUser()
{
$this->authorize('invite', User::class);
$inv = Invitation::create([
'code' => str()->random(50),
'email' => $this->invite_email,
'invited_by' => auth()->user()->id,
'expires_at' => now()->addDays(7),
]);
Flux::modal('invite-user')->close();
// Refresh the data
$this->invitations = Invitation::all();
$this->invite_email = '';
}
public function deleteUser(User $user)
{
$this->authorize('delete', $user);
$user->delete();
// Refresh the data
$this->users = User::all();
}
public function render()
{
return view('livewire.manage-users');
}
}