@php
$acoes = ['listar', 'visualizar', 'criar', 'editar', 'excluir'];
// Filtrar SubProfiles do grupo (excluindo Dashboard)
$menusDoGrupo = [];
if ($user->group && $user->group->menu_access && is_array($user->group->menu_access)) {
foreach ($user->group->menu_access as $menu) {
$subProfileId = is_array($menu) && isset($menu['id']) ? $menu['id'] : null;
if ($subProfileId && isset($subProfiles[$subProfileId])) {
$subProfile = $subProfiles[$subProfileId];
if (strtolower($subProfile->nome) === 'dashboard') continue;
$menusDoGrupo[$subProfileId] = $subProfile;
}
}
}
// Processar permissões do usuário por ID
$userPermissions = [];
if ($user->permissions && is_array($user->permissions)) {
foreach ($user->permissions as $permission) {
if (is_array($permission) && isset($permission['id']) && isset($permission['permissions'])) {
$userPermissions[$permission['id']] = $permission['permissions'];
}
}
}
@endphp
Permissões específicas por módulo: Configure as ações específicas que este usuário pode realizar em cada módulo do sistema.
@if(count($menusDoGrupo) > 0)
@foreach($menusDoGrupo as $subProfileId => $subProfile)
@php
$profileNome = $subProfile->profile ? $subProfile->profile->nome : 'N/A';
@endphp
@foreach($acoes as $acao)
@php
$hasPermission = false;
if (isset($userPermissions[$subProfileId]) && is_array($userPermissions[$subProfileId])) {
$hasPermission = in_array($acao, $userPermissions[$subProfileId]);
}
@endphp
@endforeach
@endforeach
@else
O grupo deste usuário não possui menus configurados para exibir permissões específicas.
@endif
@if(empty($userPermissions) && count($menusDoGrupo) > 0)
Nenhuma permissão específica definida para este usuário. O usuário herda as permissões do grupo.
@endif