{{ __('roles.title') }}

{{ __('roles.subtitle') }}

{{-- Neue Rolle. Vorher stand das Feld auf `flex-1` neben einem Knopf ohne `shrink-0`, und beide auf `items-end` — bei schmalem Fenster schob der Hinweistext unter dem Feld den Knopf aus der Karte heraus. Jetzt ein Raster mit zwei Spuren: das Feld nimmt, was übrig ist, der Knopf behält seine Breite, und der Hinweis steht UNTER der Reihe statt in ihr. --}}
{{ __('roles.create') }}

{{ __('roles.new_hint') }}

@error('newRole')

{{ $message }}

@enderror
{{-- Eine Karte je Rolle, zugeklappt. Sechs Rollen mal einundzwanzig Rechte waren über hundert Kästchen untereinander — man scrollte an der Rolle vorbei, die man ändern wollte. Zugeklappt ist die Seite sechs Zeilen lang, und die Zeile sagt schon, was sie enthält: wie viele Rechte, wie viele Menschen. --}}
@foreach ($roles as $role) @php $isProtected = $role->name === $protectedRole; // NICHT $granted nennen: das ist die Eigenschaft des // Bauteils, und in der zweiten Runde der Schleife wäre sie // eine Zahl statt der Liste. $grantedCount = count($granted[$role->id] ?? []); @endphp
{{-- Die Kopfzeile IST der Schalter. Ein eigener Pfeil-Knopf daneben wäre ein zweites Ziel für dieselbe Absicht. --}}
@if ($isProtected) {{ __('roles.owner_locked') }} @endif @error('granted.'.$role->id)

{{ $message }}

@enderror
@foreach ($groups as $prefix => $names)

{{ $prefix }}

@foreach ($names as $permission) @endforeach
@endforeach
@unless ($isProtected)
{{ __('common.save') }} @if ($role->users_count === 0) {{ __('roles.delete') }} @endif
@endunless
@endforeach