@php $title = 'Visualizar Usuário'; @endphp

{{ $user->name }}

Detalhes e permissões do usuário
Informações Básicas
Dados pessoais e status do usuário
Código:
{{ $user->id }}
Nome:
{{ $user->name }}
E-mail:
{{ $user->email }}
Status:
{{ $user->is_active ? 'Ativo' : 'Inativo' }}
Criado em:
{{ $user->created_at ? $user->created_at->format('d/m/Y \à\s H:i') : 'N/A' }}
Última atualização:
{{ $user->updated_at ? $user->updated_at->format('d/m/Y \à\s H:i') : 'N/A' }}
Grupo de Acesso
Grupo associado e menus herdados
@if($user->group)
{{ $user->group->name }}
{{ $user->group->is_active ? 'Ativo' : 'Inativo' }}
{{ $user->group->description ?? 'Nenhuma descrição informada' }}

Menus Acessíveis (herdados do grupo)
@if($user->group && $user->group->menu_access && is_array($user->group->menu_access) && count($user->group->menu_access) > 0) @php $menusDisponiveis = [ 'dashboard' => [ 'label' => 'Dashboard', 'icon' => 'bi-speedometer2', 'description' => 'Painel principal com estatísticas' ], 'clientes' => [ 'label' => 'Clientes', 'icon' => 'bi-people', 'description' => 'Cadastro e gestão de clientes' ], 'fornecedores' => [ 'label' => 'Fornecedores', 'icon' => 'bi-truck', 'description' => 'Cadastro e gestão de fornecedores' ], 'servicos' => [ 'label' => 'Serviços', 'icon' => 'bi-tools', 'description' => 'Catálogo de serviços oferecidos' ], 'orcamentos' => [ 'label' => 'Orçamentos', 'icon' => 'bi-file-earmark-text', 'description' => 'Criação e gestão de orçamentos' ], 'vendas' => [ 'label' => 'Vendas', 'icon' => 'bi-cart-check', 'description' => 'Processamento e controle de vendas' ], 'financeiro' => [ 'label' => 'Financeiro', 'icon' => 'bi-currency-dollar', 'description' => 'Relatório financeiro do sistema' ], 'usuarios' => [ 'label' => 'Usuários', 'icon' => 'bi-person', 'description' => 'Usuários do sistema' ], 'grupos' => [ 'label' => 'Grupos', 'icon' => 'bi-people', 'description' => 'Grupos de usuários do sistema' ] ]; @endphp
@foreach($user->group->menu_access as $menu) @php $menuKey = is_array($menu) ? (isset($menu['nome']) ? strtolower($menu['nome']) : (isset($menu['id']) ? $menu['id'] : '')) : $menu; if (is_numeric($menuKey)) { $reverseMap = [1 => 'dashboard', 2 => 'clientes', 3 => 'fornecedores', 4 => 'servicos', 5 => 'orcamentos', 6 => 'vendas', 7 => 'financeiro', 8 => 'usuarios', 9 => 'grupos']; $menuKey = $reverseMap[$menuKey] ?? ''; } if ($menuKey === 'serviços') $menuKey = 'servicos'; if ($menuKey === 'orçamentos') $menuKey = 'orcamentos'; if ($menuKey === 'usuários') $menuKey = 'usuarios'; $menuKey = str_replace(['ç', 'ã', 'õ', 'á', 'à', 'â', 'é', 'ê', 'í', 'ó', 'ô', 'ú'], ['c', 'a', 'o', 'a', 'a', 'a', 'e', 'e', 'i', 'o', 'o', 'u'], $menuKey); $menuKey = preg_replace('/[^a-z0-9]/', '', $menuKey); @endphp @if(is_string($menuKey) && !empty($menuKey) && isset($menusDisponiveis[$menuKey]))
{{ $menusDisponiveis[$menuKey]['label'] }}
{{ $menusDisponiveis[$menuKey]['description'] }}
@endif @endforeach
@else
O grupo não possui menus configurados.
@endif
@else
Este usuário não está associado a nenhum grupo.
@endif
Permissões Específicas do Usuário
Configure as ações específicas que este usuário pode realizar em cada menu
@php $menusDisponiveis = [ 'dashboard' => [ 'label' => 'Dashboard', 'icon' => 'bi-speedometer2', 'description' => 'Painel principal do sistema' ], 'clientes' => [ 'label' => 'Clientes', 'icon' => 'bi-people', 'description' => 'Cadastro e gestão de clientes' ], 'fornecedores' => [ 'label' => 'Fornecedores', 'icon' => 'bi-truck', 'description' => 'Cadastro e gestão de fornecedores' ], 'servicos' => [ 'label' => 'Serviços', 'icon' => 'bi-tools', 'description' => 'Catálogo de serviços oferecidos' ], 'orcamentos' => [ 'label' => 'Orçamentos', 'icon' => 'bi-file-earmark-text', 'description' => 'Criação e gestão de orçamentos' ], 'vendas' => [ 'label' => 'Vendas', 'icon' => 'bi-cart-check', 'description' => 'Processamento e controle de vendas' ], 'financeiro' => [ 'label' => 'Financeiro', 'icon' => 'bi-currency-dollar', 'description' => 'Relatório financeiro do sistema' ], 'usuarios' => [ 'label' => 'Usuários', 'icon' => 'bi-person', 'description' => 'Usuários do sistema' ], 'grupos' => [ 'label' => 'Grupos', 'icon' => 'bi-people', 'description' => 'Grupos de usuários do sistema' ] ]; // Filtrar apenas os menus que o grupo do usuário tem acesso $menusDoGrupo = []; if ($user->group && $user->group->menu_access && is_array($user->group->menu_access)) { foreach ($user->group->menu_access as $menu) { $menuKey = is_array($menu) ? (isset($menu['nome']) ? strtolower($menu['nome']) : (isset($menu['id']) ? $menu['id'] : '')) : $menu; if (is_numeric($menuKey)) { $reverseMap = [1 => 'dashboard', 2 => 'clientes', 3 => 'fornecedores', 4 => 'servicos', 5 => 'orcamentos', 6 => 'vendas', 7 => 'financeiro', 8 => 'usuarios', 9 => 'grupos']; $menuKey = $reverseMap[$menuKey] ?? ''; } if ($menuKey === 'serviços') $menuKey = 'servicos'; if ($menuKey === 'orçamentos') $menuKey = 'orcamentos'; if ($menuKey === 'usuários') $menuKey = 'usuarios'; $menuKey = str_replace(['ç', 'ã', 'õ', 'á', 'à', 'â', 'é', 'ê', 'í', 'ó', 'ô', 'ú'], ['c', 'a', 'o', 'a', 'a', 'a', 'e', 'e', 'i', 'o', 'o', 'u'], $menuKey); $menuKey = preg_replace('/[^a-z0-9]/', '', $menuKey); // Dashboard não aparece nas permissões específicas if ($menuKey === 'dashboard') continue; if (is_string($menuKey) && !empty($menuKey) && isset($menusDisponiveis[$menuKey])) { $menusDoGrupo[$menuKey] = $menusDisponiveis[$menuKey]; } } } $acoes = ['listar', 'visualizar', 'criar', 'editar', 'excluir']; // Processar permissões do usuário - converter formato novo para antigo para compatibilidade $userPermissions = []; if ($user->permissions && is_array($user->permissions)) { foreach ($user->permissions as $permission) { if (is_array($permission) && isset($permission['id']) && isset($permission['permissions'])) { // Formato novo: converter ID para chave $reverseMap = [1 => 'dashboard', 2 => 'clientes', 3 => 'fornecedores', 4 => 'servicos', 5 => 'orcamentos', 6 => 'vendas', 7 => 'financeiro', 8 => 'usuarios', 9 => 'grupos']; $menuKey = $reverseMap[$permission['id']] ?? ''; if ($menuKey) { $userPermissions[$menuKey] = $permission['permissions']; } } elseif (is_array($permission) && isset($permission['nome']) && isset($permission['permissions'])) { // Formato novo: converter nome para chave $menuNome = strtolower($permission['nome']); $menuNome = str_replace(['ç', 'ã', 'õ', 'á', 'à', 'â', 'é', 'ê', 'í', 'ó', 'ô', 'ú'], ['c', 'a', 'o', 'a', 'a', 'a', 'e', 'e', 'i', 'o', 'o', 'u'], $menuNome); $menuKey = preg_replace('/[^a-z0-9]/', '', $menuNome); if ($menuKey) { $userPermissions[$menuKey] = $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 $menuKey => $menuInfo) @php // DEBUG: verificar se financeiro está nos menus do grupo if ($menuKey === 'financeiro') { echo ""; } @endphp
{{ $menuInfo['label'] }}
{{ $menuInfo['description'] }}
@foreach($acoes as $acao) @php $hasPermission = false; if (isset($userPermissions[$menuKey]) && is_array($userPermissions[$menuKey])) { $hasPermission = in_array($acao, $userPermissions[$menuKey]); } @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