{{ __('Admin') }} {{ __('Users') }}
{{ __('Admin · Platform users') }}

{{ __('All') }} {{ __('users') }}

{{ __('Manage every account on the platform: roles, login-as, status, and trash.') }}

@if (session('success'))
{{ session('success') }}
@endif
{{ __('Total users') }}
{{ number_format($stats['total']) }}
+{{ $stats['thisMonth'] }} {{ __('this month') }}
{{ __('Active') }}
{{ number_format($stats['active']) }}
{{ $stats['total'] > 0 ? round(($stats['active'] / $stats['total']) * 100, 1) : 0 }}% active
{{ __('Suspended') }}
{{ number_format($stats['suspended']) }}
{{ __('policy violations') }}
{{ __('Owners') }}
{{ number_format($stats['owners']) }}
{{ __('workspace owners') }}
{{ __('Trashed') }}
{{ number_format($stats['trashed']) }}
{{ __('recoverable 30d') }}
{{-- Filter / search bar — links carry filters back through pagination. --}}
@php $pills = [ 'all' => 'All', 'admin' => 'Admins', 'owner' => 'Owners', 'agent' => 'Agents', 'suspended' => 'Suspended', ]; $countsByRole = [ 'all' => $stats['total'], 'admin' => $stats['admin'], 'owner' => $stats['owners'], 'agent' => null, 'suspended' => $stats['suspended'], ]; @endphp @foreach ($pills as $k => $label) @endforeach
@forelse ($users as $u) @php $initials = collect(explode(' ', trim((string) $u->name))) ->map(fn($p) => mb_substr($p, 0, 1)) ->take(2) ->implode(''); $initials = $initials !== '' ? mb_strtoupper($initials) : '?'; $verified = !is_null($u->email_verified_at); $suspended = $u->role === 'suspended'; $ws = $u->currentWorkspaceRel; $impersonateUrl = $ws ? route('admin.impersonate.start', $ws->id) : null; @endphp @empty @endforelse
{{ __('Name & contact') }} {{ __('Workspace') }} {{ __('Joined') }} {{ __('Vfd') }} {{ __('Login') }} {{ __('Status') }}
{{ $u->name }}
{{ $u->email }} @if ($u->mobile) · {{ $u->mobile }} @endif
{{ $ws?->name ?? '—' }}
{{ ucfirst($u->role ?? 'user') }}
{{ $u->created_at?->diffForHumans() }} @if ($suspended) @elseif ($verified) @else @endif @if ($impersonateUrl && !$suspended)
@csrf
@else @endif
@csrf
{{ __('No users match your filters.') }}
Showing {{ $users->firstItem() ?? 0 }}–{{ $users->lastItem() ?? 0 }} of {{ number_format($users->total()) }} {{ __('users') }}
{{ $users->onEachSide(1)->links() }}