Gestion des utilisateurs

{{-- Bouton Créer (icône seule) --}} @if(auth()->user()->hasPermission('users-manage')) @endif {{-- Bouton Corbeille (icône seule) --}}
{{-- Note: Le layout gère automatiquement max-w-5xl, pas besoin de wrapper --}}
{{-- BARRE DE RECHERCHE (Alpine.js) --}} {{-- DESKTOP: Tableau --}}
@forelse($users as $user) @empty @endforelse
Rôles Actions
@if(auth()->user()->hasPermission('users-view')) {{ strtoupper($user->last_name) }} {{ $user->first_name }} @else
{{ strtoupper($user->last_name) }} {{ $user->first_name }}
@endif {{-- Indicateur visuel : Adhérent(s) lié(s) --}} @if($user->members->isNotEmpty()) @endif
{{ $user->email }}
@if(!$user->email_verified_at)
✗ Non vérifié
@endif
@forelse($user->roles->where('name', '!=', 'admin') as $role) {{ $role->name }} @empty Aucun rôle @endforelse
@if($user->is_active) Actif @else Inactif @endif @if($user->last_login_at)
{{ $user->last_login_at->diffForHumans() }}
@else Jamais @endif
@if(auth()->user()->hasPermission('users-view')) @endif @if(auth()->user()->hasPermission('users-manage')) @endif @if(auth()->user()->hasPermission('users-manage')) @php $cannotDelete = false; $deleteBlockReason = ''; if ($user->hasRole('admin')) { $cannotDelete = true; $deleteBlockReason = 'Compte protégé'; } elseif ($user->id === auth()->id()) { $cannotDelete = true; $deleteBlockReason = 'Vous ne pouvez pas supprimer votre propre compte'; } elseif ($user->is_active) { $cannotDelete = true; $deleteBlockReason = 'Utilisateur actif (désactivez d\'abord)'; } elseif ($user->roles->isNotEmpty()) { $cannotDelete = true; $roleNames = $user->roles->pluck('name')->implode(', '); $deleteBlockReason = 'Rôles actifs : ' . $roleNames; } @endphp @if($cannotDelete) @else Supprimer cet utilisateur ? L'utilisateur {{ $user->full_name }} sera mis en corbeille.
@csrf @method('DELETE')
@endif @endif
Aucun utilisateur trouvé.
{{-- PAGINATION (conditionnelle) --}} @if($users->hasPages())
{{ $users->links() }}
@endif