@props(['user' => null]) @php use Illuminate\Support\Str; use Koneko\VuexyAdmin\Models\PermissionGroup; $permissions = $user?->getAllPermissionMetas() ?? collect(); $groupedPermissions = $permissions->groupBy(fn($perm) => optional($perm->group)->module ?? 'Sin módulo'); $moduleDescriptions = PermissionGroup::query() ->where('type', 'module') ->get() ->keyBy('module') ->map(fn($group) => [ 'name' => $group->name[app()->getLocale()] ?? $group->module, 'description' => $group->ui_metadata['description'][app()->getLocale()] ?? '', 'icon' => $group->ui_metadata['icon'] ?? 'ti ti-box', ]); @endphp
@forelse($groupedPermissions as $module => $groupItems) @php $subGroups = $groupItems->groupBy(fn($perm) => optional($perm->group)->sub_grupo ?? 'General'); $moduleInfo = $moduleDescriptions[$module] ?? null; @endphp
{{-- Sección izquierda: ícono + título --}}
{{ $moduleInfo['name'] ?? $module }}
{{ $module }}
{{-- Contador de permisos --}}
{{ $groupItems->count() }} permiso{{ $groupItems->count() === 1 ? '' : 's' }}
{{-- Descripción general del módulo --}} @if(!empty($moduleInfo['description']))

{{ $moduleInfo['description'] }}

@endif
@foreach($subGroups as $sub => $items)
{{ Str::headline($sub) }} ({{ $items->count() }})
@php $groupInfo = $items->first()?->group; $subGroupDescription = $groupInfo->ui_metadata['description'][app()->getLocale()] ?? null; $actions = $items ->filter(fn($perm) => method_exists($perm, 'getActionLabel')) ->map(fn($perm) => $perm->getActionLabel()) ->unique() ->implode(', '); @endphp @if($subGroupDescription)

{{ $subGroupDescription }}

@endif @if($actions)

Acciones: {{ $actions }}

@endif
    @foreach($items as $perm)
  • {{ $perm->getDisplayName() }}
  • @endforeach
@endforeach
@empty
Este usuario no tiene permisos asignados.
@endforelse