{{ __('Admin') }} {{ __('Permissions') }}
{{ __('Admin · Users & access · Permissions') }}

{{ __('All') }} {{ __('permissions') }}

{{ __('Every permission flag the platform recognises, grouped by module. Add a new flag here, then attach it to roles in the role editor.') }}

@if (session('status'))
{{ session('status') }}
@endif @if ($errors->any())
@foreach ($errors->all() as $err)
{{ $err }}
@endforeach
@endif @php $totalPermissions = $permissions->count(); $moduleCount = $permissionsGrouped->count(); $rolesCount = \Spatie\Permission\Models\Role::count(); // Permissions used in at least one role. $usedPermissionIds = \Illuminate\Support\Facades\DB::table('role_has_permissions') ->select('permission_id') ->distinct() ->pluck('permission_id'); $usedCount = $usedPermissionIds->count(); $orphanCount = $totalPermissions - $usedCount; // Per-permission role counts (for the listing cards). $rolesPerPerm = \Illuminate\Support\Facades\DB::table('role_has_permissions') ->select('permission_id', \Illuminate\Support\Facades\DB::raw('COUNT(*) as roles_count')) ->groupBy('permission_id') ->pluck('roles_count', 'permission_id'); $lastPerm = $permissions->sortByDesc('created_at')->first(); @endphp
{{ __('Total permissions') }}
{{ $totalPermissions }}
across {{ $moduleCount }} {{ __('modules') }}
{{ __('Used in roles') }}
{{ $usedCount }}
{{ __('attached to ≥ 1 role') }}
{{ __('Orphan permissions') }}
{{ $orphanCount }}
{{ __('attached to 0 roles') }}
{{ __('Last added') }}
{{ $lastPerm?->name ?? '—' }}
{{ $lastPerm ? optional($lastPerm->created_at)->format('Y-m-d') : '' }}
{{ $totalPermissions }} permissions in {{ $moduleCount }} {{ __('modules') }}
@forelse ($permissionsGrouped as $module => $perms)
{{ $module }}
{{ $perms->count() }} {{ __('permissions') }}
@foreach ($perms as $perm) @php $rolesUsing = (int) ($rolesPerPerm[$perm->id] ?? 0); @endphp
{{ $perm->name }} @if ($rolesUsing === 0) {{ __('orphan') }} @endif
in {{ $rolesUsing }} {{ \Illuminate\Support\Str::plural('role', $rolesUsing) }}
@csrf @method('DELETE')
@endforeach
@empty
No permissions defined yet. {{ __('Create the first one') }}.
@endforelse