@extends('layouts.app') @section('title', 'Gestão de Módulos & Permissões') @section('topbar_title', 'Administração: Gestão de Módulos, Grupos & Permissões') @section('styles') @endsection @section('content')
{{-- CABEÇALHO --}}

Gestão de Módulos, Grupos & Permissões

Configure acessos baseados em Grupos / Perfis ou conceda permissões diretas por colaborador (Active Directory / Banco Local) com as 5 ações granulares: view, edit, insert, export e actions.

Usuários LDAP
{{-- ABAS PRINCIPAIS --}}
{{-- KPIS --}}
Módulos Ativos {{ $totalModulosAtivos ?? $modulos->where('ativo', 'S')->count() }} / {{ $totalModulos ?? $modulos->count() }}
Telas Ativas {{ $totalTelasAtivas ?? $modulos->sum(fn ($m) => $m->telas->where('ativo', 'S')->count()) }} / {{ $totalTelas }}
Grupos / Perfis {{ $grupos->count() }}
Permissões Granulares {{ $totalPermissoes }}
Usuários com Regras {{ $totalUsuariosComPermissao }}
{{-- ========================================================================= --}} {{-- ABA 1: PERMISSÕES POR USUÁRIO (VINCULO A GRUPOS + PERMISSÕES DIRETAS) --}} {{-- ========================================================================= --}}
{{-- PAINEL DE SELEÇÃO DE USUÁRIO --}}
Selecione o Usuário para Configurar Acessos
{{-- Campo de Busca e Atalho de Seleção Rápida --}}
{{-- Atalho Direto: Selecionar Usuário Local do Banco --}}
Ou escolha:
{{-- Card do Usuário em Foco --}}
{{-- SELETOR DE GRUPOS DO USUÁRIO --}}
Grupos / Perfis de Acesso Vinculados a este Usuário: Marque um ou mais perfis para conceder o pacote de acessos do setor
@foreach ($grupos as $g) @endforeach
{{-- BARRA DE AÇÃO FLUTUANTE / SUPERIOR --}}
Matriz de Permissões: 0 tela(s) habilitada(s) 0 ação(ões) ativa(s)
{{-- GRID DE MÓDULOS E TELAS (RESPONSIVO COM ALINHAMENTO COMPACTO) --}}
@foreach ($modulos as $modulo)
@include('partials.nav-icon', ['icone' => $modulo->icone])
{{ $modulo->nome }}
{{ $modulo->ativo === 'S' ? 'Ativo' : 'Desativado' }}
{{ $modulo->telas->count() }} rotina(s) catalogada(s)
@forelse ($modulo->telas as $tela) @php $permView = $tela->permissoes->first(fn ($p) => str_ends_with($p->codigo, '.view') || str_ends_with($p->codigo, '.visualizar')) ?? $tela->permissoes->first(); $acoesGranulares = $tela->permissoes->filter(fn ($p) => $p->id !== ($permView?->id)); @endphp
@include('partials.nav-icon', ['icone' => $tela->icone])
{{ $tela->nome }} Desativada no Sistema
{{ $tela->rota ?: $tela->slug }}
@if ($permView)
Visualizar
@else Sem regra @endif
@if ($acoesGranulares->isNotEmpty())
Ações:
@foreach ($acoesGranulares as $acaoPerm) @php $partes = explode('.', $acaoPerm->codigo); $tipoAcao = end($partes); @endphp @endforeach
@endif
@empty
Nenhuma tela vinculada a este módulo.
@endforelse
@endforeach
{{-- ========================================================================= --}} {{-- ABA 2: GESTÃO DE GRUPOS & PERFIS DE ACESSO (PERMISSÕES E MEMBROS) --}} {{-- ========================================================================= --}} {{-- ========================================================================= --}} {{-- ABA 3: ATIVAÇÃO DE MÓDULOS DO SISTEMA (VISIBILIDADE NO MENU LATERAL) --}} {{-- ========================================================================= --}}
{{-- MODAL PARA COPIAR PERMISSÕES ENTRE USUÁRIOS --}} {{-- MODAL PARA CRIAR NOVO GRUPO --}} {{-- TOAST DE FEEDBACK --}}
Operação realizada com sucesso!
@endsection