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

{{ __('Roles &') }} {{ __('permissions') }}

{{ __('Define what each role can do across the platform. Each user is assigned one role; permissions are bundled per role.') }}

@if (session('status'))
{{ session('status') }}
@endif @if ($errors->any())
@foreach ($errors->all() as $err)
{{ $err }}
@endforeach
@endif @php $totalPermissions = \Spatie\Permission\Models\Permission::count(); $totalRoles = $roles->count(); $systemRoleNames = ['Super Admin', 'Admin']; $systemCount = $roles->whereIn('name', $systemRoleNames)->count(); $customCount = $totalRoles - $systemCount; $rolesWithoutUsers = $roles->where('users_count', 0)->count(); @endphp
{{ __('Total roles') }}
{{ $totalRoles }}
{{ $systemCount }} system · {{ $customCount }} {{ __('custom') }}
{{ __('Total permissions') }}
{{ $totalPermissions }}
{{ __('across modules') }}
{{ __('Users with role') }}
{{ $roles->sum('users_count') }}
{{ __('across all roles') }}
{{ __('Roles without users') }}
{{ $rolesWithoutUsers }}
{{ __('consider archiving') }}
{{ __('All') }} {{ $totalRoles }}
{{ __('System') }}
{{ __('Custom') }}
@forelse ($roles as $idx => $role) @php $isSystem = in_array($role->name, $systemRoleNames, true); $permRatio = $totalPermissions > 0 ? $role->permissions_count / $totalPermissions : 0; $widthPct = (int) round($permRatio * 100); @endphp @empty @endforelse
# {{ __('Role name') }} {{ __('Type') }} {{ __('Users') }} {{ __('Permissions') }} {{ __('Last edited') }}
{{ $idx + 1 }}
{{ $role->name }}
{{ $isSystem ? 'System role' : 'Custom role' }}
@if ($isSystem) {{ __('System') }} @else {{ __('Custom') }} @endif {{ $role->users_count }} {{ $role->permissions_count }} / {{ $totalPermissions }}
{{ optional($role->updated_at)->format('Y-m-d') ?? '—' }}
No roles defined yet. {{ __('Create the first role') }}.
Showing {{ $totalRoles }} of {{ $totalRoles }} {{ __('roles') }}
+ Add role
@push('scripts') @endpush