with('user')->orderBy('role')->get(); $invitations = Invitation::query() ->with('invitedBy') ->whereNull('accepted_at') ->orderByDesc('sent_at') ->get(); return [ 'members' => $members, 'invitations' => $invitations, 'totalMembers' => $members->count(), 'adminCount' => $members->whereIn('role', ['owner', 'admin'])->count(), 'pendingInvites' => $invitations->count(), 'twoFaCoverage' => $members->count() ? (int) round($members->where('two_fa_enabled')->count() / $members->count() * 100) : 0, ]; } }; ?>

Team

{{ $totalMembers }} mitglieder · {{ $pendingInvites }} einladungen offen
{{ $twoFaCoverage }}% mit 2FA
Mitglieder
{{ $totalMembers }}
aktiv
Admins
{{ $adminCount }}
owner + admin
Einladungen offen
{{ $pendingInvites }}
warten auf Annahme
2FA Coverage
{{ $twoFaCoverage }}%
aktiviert

Mitglieder

@forelse ($members as $m) @empty @endforelse
NameRolleScope2FALetzte Aktivität
{{ mb_strtoupper(mb_substr($m->user->name ?? '?', 0, 2)) }}
{{ $m->user->name ?? '—' }} {{ $m->user->email ?? '—' }}
{{ strtoupper($m->role) }} {{ $m->scope ?? '—' }} @if ($m->two_fa_enabled) aktiv @else fehlt @endif {{ $m->last_active_at?->diffForHumans() ?? '—' }}
Noch keine Mitglieder.

Offene Einladungen

{{ $pendingInvites }} pending
@forelse ($invitations as $i) @empty @endforelse
EmailRolleEingeladen vonGesendetLäuft ab
{{ $i->email }} {{ strtoupper($i->role) }} {{ $i->invitedBy->name ?? '—' }} {{ $i->sent_at?->diffForHumans() ?? '—' }} {{ $i->expires_at?->diffForHumans() ?? '—' }}
Keine offenen Einladungen.