PageSourceSearch

https://irpa2026colombia.org/assets/AuditLogsAdmin-CMTKaz8D.js

js irpa2026colombia.org collected 2026-10-08 03:16:58 UTC 8,464 bytes, 1 lines download raw bytes

1import{g as Y,u as Z,r as i,s as ee,j as e,b as se,B as j}from"./index-DnVm687U.js";import{H as ae,F as re}from"./Footer-Bvqa_r8G.js";import{C as P,b as te,c as ie,a as T}from"./card-CRFaJYNz.js";import{B as A}from"./badge-BLNB1n0H.js";import{I as H}from"./input-D4ugazI8.js";import{S as k,a as R,b as I,c as M,d as r}from"./select-BBeLgipb.js";import{T as le,a as oe,b as y,c as o,d as ne,e as l}from"./table-DWz2i9MN.js";import{u as w,w as ce}from"./xlsx-DjuO7_Ju.js";import{A as de}from"./arrow-left-i1Qu9EeE.js";import{S as me}from"./shield-BN1RiLGr.js";import{F as xe}from"./filter-D0S6FpMe.js";import{S as ue}from"./search-BNZJvCG8.js";import{D as he}from"./download-Cln34tJJ.js";import{f as E}from"./format-BeKxgCCE.js";import{e as B}from"./es-CFK9b-z2.js";import"./dropdown-menu-elZyZctl.js";import"./index-B-Wc5f3e.js";import"./Combination-D1NCdNup.js";import"./index-C7OIboLl.js";import"./log-out-CtUQRbPX.js";import"./mail-BBtFmBsn.js";import"./index-Cue5PJE5.js";import"./chevron-up-46FaISor.js";const Be=()=>{const{userRole:c,loading:f}=Y(),b=Z(),[v,D]=i.useState([]),[d,V]=i.useState([]),[q,L]=i.useState(!0),[m,z]=i.useState(""),[x,O]=i.useState(""),[u,$]=i.useState("all"),[h,G]=i.useState("all"),[p,_]=i.useState(1),N=50;i.useEffect(()=>{!f&&c!=="super_admin"&&c!=="admin_association"&&b("/")},[c,f,b]),i.useEffect(()=>{J()},[]),i.useEffect(()=>{K()},[v,m,x,u,h]);const J=async()=>
1{try{L(!0);const{data:s,error:a}=await ee.from("access_audit_logs").select("*").order("created_at",{ascending:!1});if(a)throw a;D(s||[])}catch(s){console.error("Error fetching audit logs:",s)}finally{L(!1)}},K=()=>{let s=[...v];m&&(s=s.filter(a=>a.email.toLowerCase().includes(m.toLowerCase()))),x&&(s=s.filter(a=>{var n;return(n=a.ip_address)==null?void 0:n.includes(x)})),u!=="all"&&(s=s.filter(a=>a.event_type===u)),h!=="all"&&(s=s.filter(a=>a.login_source===h)),V(s),_(1)},Q=()=>{const s=d.map(t=>({"Fecha/Hora":E(new Date(t.created_at),"dd/MM/yyyy HH:mm:ss",{locale:B}),Email:t.email,Evento:W(t.event_type),Fuente:S(t.login_source),IP:t.ip_address||"-",Dispositivo:t.device_type||"-",Navegador:t.browser||"-","Sistema Operativo":t.operating_system||"-",País:t.country||"-",Ciudad:t.city||"-",Error:t.error_message||"-"})),a=w.json_to_sheet(s),n=w.book_new();w.book_append_sheet(n,a,"Auditoría de Accesos"),ce(n,`auditoria_accesos_${E(new Date,"yyyyMMdd_HHmmss")}.xlsx`)},U=s=>{const n={login_success:{label:"✓ Login Exitoso",className:"bg-green-500/20 text-green-700 border-green-500/50"},login_failed:{label:"✗ Login Fallido",className:"bg-red-500/20 text-red-700 border-red-500/50"},logout:{label:"← Logout",className:"bg-yellow-500/20 text-yellow-700 border-yellow-500/50"},signup_success:{label:"+ Registro Exitoso",className:"bg-blue-500/20 text-blue-700 border-blue-500/50"},signup_failed:{label:"✗ Registro Fallido",className:"bg-red-500/20 text-red-700 border-red-500/50"},password_reset_requested:{label:"🔑 Reset Password",className:"bg-purple-500/20 text-purple-700 border-purple-500/50"}}[s]||{label:s,className:"bg-gray-500/20 text-gray-700 border-gray-500/50"};return e.jsx(A,{className:`${n.className} border`,children:n.label})},W=s=>({login_success:"Login Exitoso",login_failed:"Login Fallido",logout:"Logout",signup_success:"Registro Exitoso",signup_failed:"Registro Fallido",password_reset_requested:"Reset Password"})[s]||s,S=s=>({admin_panel:"Panel Admin",evaluadores:"Evaluadores",participantes:"Participantes",inscribirme:"Inscripción"})[s]||s,F=p*N,X=F-N,C=d.slice(X,F),g=Math.ceil(d.length/N);return f||q?e.jsxs("div",{className:"min-h-screen flex items-center justify-center",children:[e.jsx(se,{className:"h-8 w-8 animate-spin text-primary"}),e.jsx("span",{className:"ml-2",children:"Verificando permisos..."})]}):c!=="super_admin"&&c!=="admin_association"?null:e.jsxs("div",{className:"min-h-screen flex flex-col bg-gradient-to-br from-background via-background to-primary/5",children:[e.jsx(ae,{}),e.jsxs("main",{className:"flex-1 container mx-auto px-4 py-8",children:[e.jsxs("div",{className:"mb-6",children:[e.jsxs(j,{variant:"ghost",onClick:()=>b("/admin?tab=management"),className:"mb-4 gap-2",children:[e.jsx(de,{className:"h-4 w-4"}),"Volver al Panel"]}),e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx(me,{className:"h-8 w-8 text-primary"}),e.jsx("h1",{className:"text-3xl font-bold",children:"Auditoría de Accesos"})]}),e.jsx("p",{className:"text-muted-foreground",children:"Monitorea todos los intentos de login y actividad de seguridad del sistema"})]}),e.jsxs(P,{className:"mb-6",children:[e.jsx(te,{children:e.jsxs(ie,{className:"flex items-center gap-2",children:[e.jsx(xe,{className:"h-5 w-5"}),"Filtros de Búsqueda"]})}),e.jsxs(T,{children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium mb-2 block",children:"Buscar por Email"}),e.jsxs("div",{className:"relative",children:[e.jsx(ue,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(H,{placeholder:"[email protected]",value:m,onChange:s=>z(s.target.value),className:"pl-9"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium mb-2 block",children:"Buscar por IP"}),e.jsx(H,{placeholder:"192.168.1.1",value:x,onChange:s=>O(s.target.value)})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium mb-2 block",children:"Tipo de Evento"}),e.jsxs(k,{value:u,onValueChange:$,children:[e.jsx(R,{children:e.jsx(I,{})}),e.jsxs(M,{children:[e.jsx(r,{value:"all",children:"Todos"}),e.jsx(r,{value:"login_success",children:"Login Exitoso"}),e.jsx(r,{value:"login_failed",children:"Login Fallido"}),e.jsx(r,{value:"logout",children:"Logout"}),e.jsx(r,{value:"signup_success",children:"Registro Exitoso"}),e.jsx(r,{value:"signup_failed",children:"Registro Fallido"}),e.jsx(r,{value:"password_reset_requested",children:"Reset Password"})]})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium mb-2 block",children:"Fuente de Login"}),e.jsxs(k,{value:h,onValueChange:G,children:[e.jsx(R,{children:e.jsx(I,{})}),e.jsxs(M,{children:[e.jsx(r,{value:"all",children:"Todas"}),e.jsx(r,{value:"admin_panel",children:"Panel Admin"}),e.jsx(r,{value:"evaluadores",children:"Evaluadores"}),e.jsx(r,{value:"participantes",children:"Participantes"}),e.jsx(r,{value:"inscribirme",children:"Inscripción"})]})]})]})]}),e.jsxs("div",{className:"mt-4 flex justify-between items-center",children:[e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Mostrando ",d.length," de ",v.length," registros"]}),e.jsxs(j,{onClick:Q,variant:"outline",size:"sm",children:[e.jsx(he,{className:"h-4 w-4 mr-2"}),"Exportar a Excel"]})]})]})]}),e.jsx(P,{children:e.jsxs(T,{className:"p-0",children:[e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(le,{children:[e.jsx(oe,{children:e.jsxs(y,{children:[e.jsx(o,{children:"Fecha/Hora"}),e.jsx(o,{children:"Email"}),e.jsx(o,{children:"Evento"}),e.jsx(o,{children:"Fuente"}),e.jsx(o,{children:"IP"}),e.jsx(o,{children:"Dispositivo"}),e.jsx(o,{children:"Navegador"}),e.jsx(o,{children:"Sistema"}),e.jsx(o,{children:"Error"})]})}),e.jsx(ne,{children:C.length===0?e.jsx(y,{children:e.jsx(l,{colSpan:9,className:"text-center py-8 text-muted-foreground",children:"No se encontraron registros de auditoría"})}):C.map(s=>e.jsxs(y,{children:[e.jsx(l,{className:"whitespace-nowrap",children:E(new Date(s.created_at),"dd/MM/yyyy HH:mm:ss",{locale:B})}),e.jsx(l,{className:"font-mono text-sm",children:s.email}),e.jsx(l,{children:U(s.event_type)}),e.jsx(l,{children:e.jsx(A,{variant:"outline",children:S(s.login_source)})}),e.jsx(l,{className:"font-mono text-xs",children:s.ip_address||"-"}),e.jsx(l,{children:s.device_type||"-"}),e.jsx(l,{className:"text-sm",children:s.browser||"-"}),e.jsx(l,{children:s.operating_system||"-"}),e.jsx(l,{className:"max-w-xs truncate text-xs text-red-600",children:s.error_message||"-"})]},s.id))})]})}),g>1&&e.jsxs("div",{className:"flex items-center justify-center gap-2 p-4 border-t",children:[e.jsx(j,{variant:"outline",size:"sm",onClick:()=>_(s=>Math.max(1,s-1)),disabled:p===1,children:"Anterior"}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["Página ",p," de ",g]}),e.jsx(j,{variant:"outline",size:"sm",onClick:()=>_(s=>Math.min(g,s+1)),disabled:p===g,children:"Siguiente"})]})]})})]}),e.jsx(re,{})]})};export{Be as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.