LevelOS-Core/UI/Dashboards/Consultas/LogUserConsultaPanel.cs

94 lines
3.5 KiB
C#

using CPM;
using MLL;
using System;
using System.Drawing;
using System.Windows.Forms;
using UI;
namespace UI
{
public partial class LogUserConsultaPanel : FormularioModelo
{
private ModeloLogUser _log = new ModeloLogUser();
// Controles - Quem e Quando
private LV_TEXTBOX1 txtId, txtCodigo, txtUsuario, txtMicro, txtDiaLog;
// Controles - O Quê e Onde
private LV_TEXTBOX1 txtAcao, txtEnderCli;
// Controles - Nível de Severidade
private ComboBox cbRisco;
public LogUserConsultaPanel()
{
this.Titulo = "Auditoria de Eventos e Logs de Usuário";
MontarInterface();
}
private void MontarInterface()
{
// --- SEÇÃO 1: Identificação do Evento ---
content.Controls.Add(CreateSectionHeader("DETALHES DA OCORRÊNCIA", 20));
txtId = AddInput(content, "ID LOG", 20, 50, 70, 30, true);
txtCodigo = AddInput(content, "CÓD. REF", 100, 50, 110, 30, true);
txtDiaLog = AddInput(content, "DATA/HORA DO EVENTO", 220, 50, 200, 30, true);
// --- SEÇÃO 2: Rastreabilidade de Origem ---
content.Controls.Add(CreateSectionHeader("ORIGEM E USUÁRIO", 115));
txtUsuario = AddInput(content, "OPERADOR", 20, 145, 250, 30, true);
txtMicro = AddInput(content, "NOME DA MÁQUINA (HOSTNAME)", 280, 145, 250, 30, true);
txtEnderCli = AddInput(content, "IP / ENDEREÇO CLIENTE", 540, 145, 295, 30, true);
// --- SEÇÃO 3: Ação e Impacto ---
content.Controls.Add(CreateSectionHeader("DESCRIÇÃO DA ATIVIDADE E RISCO", 210));
txtAcao = AddInput(content, "AÇÃO EXECUTADA", 20, 240, 500, 30, true);
Label lblRisco = new Label { Text = "NÍVEL DE RISCO", Location = new Point(530, 223), AutoSize = true };
cbRisco = new ComboBox
{
Location = new Point(530, 240),
Size = new Size(150, 30),
DropDownStyle = ComboBoxStyle.DropDownList,
Enabled = false // Logs geralmente são imutáveis
};
cbRisco.Items.AddRange(new object[] { "BAIXO", "MÉDIO", "ALTO", "CRÍTICO" });
content.Controls.Add(lblRisco);
content.Controls.Add(cbRisco);
// Destaque visual para o risco se necessário
cbRisco.SelectedIndexChanged += (s, e) => {
if (cbRisco.Text == "CRÍTICO" || cbRisco.Text == "ALTO")
cbRisco.BackColor = Color.LightCoral;
};
content.Height = 320;
}
private void PreencherModel()
{
_log.CODIGO = txtCodigo.Text;
_log.USUARIO = txtUsuario.Text;
_log.MICRO = txtMicro.Text;
_log.ACAO = txtAcao.Text;
_log.RISCO = cbRisco.Text;
_log.DIA_LOG = txtDiaLog.Text;
_log.ENDER_CLI = txtEnderCli.Text;
}
protected override void OnNovo() { /* Logs não são criados manualmente */ }
protected override void OnSalvar()
{
MessageBox.Show("Registros de auditoria são protegidos e não podem ser alterados.", "LevelOS Security", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
protected override void OnAlterar() { }
protected override void OnExcluir() { }
protected override void OnLocalizar() { /* Implementar busca por data ou usuário */ }
protected override void OnCancelar() { }
}
}