Painel Administrativo

Controle total de acesso, usuários e auditoria do sistema SGSE

{#if notice}
{#if notice.type === "success"} {:else} {/if} {notice.message}
{/if}
{#if abaAtiva === "solicitacoes"} {#if solicitacoesQuery.data}
Total
{solicitacoesQuery.data.length}
Pendentes
{solicitacoesQuery.data.filter((s: any) => s.status === "pendente").length}
Aprovadas
{solicitacoesQuery.data.filter((s: any) => s.status === "aprovado").length}
Rejeitadas
{solicitacoesQuery.data.filter((s: any) => s.status === "rejeitado").length}
{/if}

Filtros

{#if solicitacoesQuery.isLoading}
{:else if solicitacoesQuery.error}
Erro ao carregar solicitações: {solicitacoesQuery.error.message}
{:else if filteredSolicitacoes().length === 0}

Nenhuma solicitação encontrada

{:else}
{#each filteredSolicitacoes() as solicitacao (solicitacao._id)} {/each}
Data Nome Matrícula E-mail Telefone Status Resposta Ações
{formatarData(solicitacao.dataSolicitacao)} {solicitacao.nome} {solicitacao.matricula} {solicitacao.email} {solicitacao.telefone} {getStatusLabel(solicitacao.status)} {solicitacao.dataResposta ? formatarData(solicitacao.dataResposta) : "-"} {#if solicitacao.status === "pendente"}
{:else} {solicitacao.observacoes || "Sem observações"} {/if}
{/if}
{/if} {#if abaAtiva === "usuarios"} {#if usuariosQuery.data}
Total de Usuários
{usuariosQuery.data.length}
Ativos
{usuariosQuery.data.filter((u: any) => u.ativo).length}
Inativos
{usuariosQuery.data.filter((u: any) => !u.ativo).length}
{/if}

Filtros

{#if usuariosQuery.isLoading}
{:else if usuariosQuery.error}
Erro ao carregar usuários: {usuariosQuery.error.message}
{:else if filteredUsuarios().length === 0}

Nenhum usuário encontrado

{:else}
{#each filteredUsuarios() as usuario (usuario._id)} {/each}
Status Nome Matrícula E-mail Função Nível Último Acesso Ações
{#if usuario.ativo} 🟢 Ativo {:else} 🔴 Inativo {/if} {usuario.nome} {usuario.matricula} {usuario.email} {usuario.role.nome} {usuario.role.nivel} {usuario.ultimoAcesso ? formatarData(usuario.ultimoAcesso) : "Nunca"}
{/if}
{/if} {#if abaAtiva === "logs"} {#if logsQuery.data}
Total
{logsQuery.data.length}
Logins
{logsQuery.data.filter((log: any) => log.tipo === "login").length}
Logouts
{logsQuery.data.filter((log: any) => log.tipo === "logout").length}
Negados
{logsQuery.data.filter((log: any) => log.tipo === "acesso_negado").length}
Outros
{logsQuery.data.filter((log: any) => !["login", "logout", "acesso_negado"].includes(log.tipo)).length}
{/if}

Filtros

{#if logsQuery.isLoading}
{:else if logsQuery.error}
Erro ao carregar logs: {logsQuery.error.message}
{:else if filteredLogs().length === 0}

Nenhum log encontrado

{:else}
{#each filteredLogs() as log (log._id)} {/each}
Data/Hora Tipo Usuário IP Detalhes
{formatarData(log.timestamp)} {getTipoLogIcon(log.tipo)} {getTipoLogLabel(log.tipo)} {log.usuario ? log.usuario.nome : "Sistema"} {log.ipAddress || "-"} {log.detalhes || "-"}
{/if}
{/if} {#if modalSolicitacaoAberto} {/if} {#if modalUsuarioAberto} {/if} {#if modalLimparLogsAberto} {/if}