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/user/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.ca/private_html/.next/server/pages/api/user/upload.js
"use strict";(()=>{var e={};e.id=6214,e.ids=[6214],e.modules={37:e=>{e.exports=import("uuid")},8667:(e,i)=>{Object.defineProperty(i,"A",{enumerable:!0,get:function(){return r}});var r=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}({})},16382:e=>{e.exports=require("next-auth/providers/credentials")},27110:(e,i,r)=>{r.a(e,async(e,o)=>{try{r.r(i),r.d(i,{config:()=>c,default:()=>p,routeModule:()=>m});var a=r(33480),s=r(8667),n=r(86435),l=r(55143),t=e([l]);l=(t.then?(await t)():t)[0];let p=(0,n.M)(l,"default"),c=(0,n.M)(l,"config"),m=new a.PagesAPIRouteModule({definition:{kind:s.A.PAGES_API,page:"/api/user/upload",pathname:"/api/user/upload",bundlePath:"",filename:""},userland:l});o()}catch(e){o(e)}})},29021:e=>{e.exports=require("fs")},33480:(e,i,r)=>{e.exports=r(75600)},33873:e=>{e.exports=require("path")},41822:(e,i,r)=>{r.d(i,{N:()=>l});var o=r(16382),a=r.n(o),s=r(74729),n=r(76760);let l={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 i=await n.z.user.findUnique({where:{email:e.email},select:{id:!0,email:!0,password:!0,role:!0,name:!0,isVerified:!0,verificationStatus:!0}});if(!i||!await (0,s.compare)(e.password,i.password))return null;let{password:r,...o}=i;return{...o,name:o.name||o.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:i,trigger:r}){try{if(console.log("JWT Callback - trigger:",r),console.log("JWT Callback - user:",i?{id:i.id,email:i.email,role:i.role}:null),i)e.id=i.id,e.role=i.role,e.email=i.email,e.name=i.name||i.email,e.profilePicture=i.profilePicture||void 0,e.username=i.username||void 0,e.isVerified=i.isVerified||!1,e.verificationStatus=i.verificationStatus||"PENDING",e.isImpersonating=i.isImpersonating||!1,e.originalUser=i.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 i=await n.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(i){let r=i.impersonatedUser;e.id=r.id,e.email=r.email,e.name=r.name||r.email,e.role=r.role,e.profilePicture=r.profilePicture||void 0,e.username=r.username||void 0,e.isImpersonating=!0,e.originalUser={id:i.originalUser.id,email:i.originalUser.email,name:i.originalUser.name||i.originalUser.email,role:i.originalUser.role,profilePicture:i.originalUser.profilePicture||void 0,username:i.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(i){console.error("JWT Callback - Database error:",i),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(i){return console.error("JWT Callback - Error:",i),e}},async session({session:e,token:i}){try{return console.log("Session Callback - token:",{id:i.id,email:i.email,role:i.role,isImpersonating:i.isImpersonating}),console.log("Session Callback - session before:",e),i&&e.user&&(e.user.id=i.id,e.user.role=i.role,e.user.email=i.email,e.user.name=i.name,e.user.profilePicture=i.profilePicture,e.user.username=i.username,e.user.isVerified=i.isVerified,e.user.verificationStatus=i.verificationStatus,e.user.isImpersonating=i.isImpersonating,e.user.originalUser=i.originalUser),console.log("Session Callback - session after:",e),console.log("Session Callback - Final user ID:",e.user?.id),e}catch(i){return console.error("Session Callback - Error:",i),e}},redirect:async({url:e,baseUrl:i})=>e===i||e===`${i}/`||e.endsWith("/auth/login")?i:e.startsWith("/")?`${i}${e}`:e.startsWith(i)?e:i},secret:process.env.NEXTAUTH_SECRET||"3560f921b7bbf968e64fbc2835960840d184fcb95977e960a2124de6bbbed2d3",debug:!1}},55143:(e,i,r)=>{r.a(e,async(e,o)=>{try{r.r(i),r.d(i,{config:()=>u,default:()=>g});var a=r(65542),s=r(67313),n=r(29021),l=r(33873),t=r.n(l),p=r(37),c=r(76760),m=r(41822),d=e([s,p]);[s,p]=d.then?(await d)():d;let u={api:{bodyParser:!1}};async function g(e,i){let r=await (0,a.getServerSession)(e,i,m.N);if(!r)return i.status(401).json({message:"Unauthorized"});if("LAWYER"===r.user.role&&!(r.user.isVerifiedLawyer||"VERIFIED_BARREAU"===r.user.verificationStatus))return i.status(403).json({message:"You must be a verified lawyer to upload files."});if("POST"!==e.method)return i.status(405).json({message:"Method not allowed"});try{let o=new s.IncomingForm({maxFileSize:0x3200000,keepExtensions:!0,multiples:!1}),[a,l]=await new Promise((i,r)=>{let a=setTimeout(()=>{r(Error("Form parsing timeout"))},3e4);o.parse(e,(e,o,s)=>{clearTimeout(a),e&&(console.error("Form parsing error:",e),r(e)),i([o,s])})});console.log("Upload fields:",a),console.log("Upload files:",l);let m=l.file,d=a.registrationId;if(console.log("File object:",m),console.log("File mimetype:",m?.mimetype),console.log("File originalFilename:",m?.originalFilename),console.log("File size:",m?.size),!m)return i.status(400).json({message:"No file provided"});if(!d)return i.status(400).json({message:"No registration ID provided"});if(m.size>0x3200000)return i.status(400).json({message:"File size exceeds 50MB limit"});let g=m.mimetype;if(console.log("Original filename:",m.originalFilename),!g&&m.originalFilename){let e=t().extname(m.originalFilename).toLowerCase();console.log("Detected extension:",e),g=({".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".gif":"image/gif",".webp":"image/webp",".bmp":"image/bmp",".tiff":"image/tiff",".pdf":"application/pdf",".doc":"application/msword",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xls":"application/vnd.ms-excel",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".ppt":"application/vnd.ms-powerpoint",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".txt":"text/plain",".csv":"text/csv",".html":"text/html",".zip":"application/zip",".rar":"application/x-rar-compressed",".7z":"application/x-7z-compressed",".json":"application/json",".xml":"application/xml"})[e],console.log("Mapped file type from extension:",g)}let u=["image/jpeg","image/jpg","image/png","image/gif","image/webp","image/bmp","image/tiff","application/pdf","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.ms-powerpoint","application/vnd.openxmlformats-officedocument.presentationml.presentation","text/plain","text/csv","text/html","application/zip","application/x-rar-compressed","application/x-7z-compressed","application/json","application/xml"];console.log("Original mimetype:",m.mimetype),console.log("Detected file type:",g),console.log("Allowed types:",u),g||(console.log("No file type detected, using generic type"),g="application/octet-stream"),u.includes(g)||console.log("File type not in allowed list, but allowing anyway for debugging");let f=t().join(process.cwd(),"public","uploads");console.log("Uploads directory path:",f);try{await n.promises.mkdir(f,{recursive:!0}),console.log("Uploads directory created/verified");let e=t().join(f,"test.txt");await n.promises.writeFile(e,"test"),await n.promises.unlink(e),console.log("Directory is writable")}catch(e){throw console.error("Error with uploads directory:",e),Error(`Failed to create/access uploads directory: ${e instanceof Error?e.message:String(e)}`)}let x=t().extname(m.originalFilename),v=`${(0,p.v4)()}${x}`,w=t().join(f,v);console.log("Copying file from:",m.filepath,"to:",w);try{await n.promises.copyFile(m.filepath,w),console.log("File copied successfully")}catch(e){throw console.error("Error copying file:",e),Error(`Failed to copy file: ${e instanceof Error?e.message:String(e)}`)}let b=await c.z.document.create({data:{name:m.originalFilename,type:g,url:`/uploads/${v}`,registrationId:d,userId:r.user.id}});return i.status(200).json(b)}catch(e){console.error("Error uploading file:",e),i.status(500).json({message:`Error uploading file: ${e instanceof Error?e.message:String(e)}`})}}o()}catch(e){o(e)}})},65542:e=>{e.exports=require("next-auth")},67313:e=>{e.exports=import("formidable")},74729:e=>{e.exports=require("bcryptjs")},75600:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:(e,i,r)=>{r.d(i,{z:()=>a});var o=r(96330);let a=globalThis.prisma??new o.PrismaClient({log:["error"]})},86435:(e,i)=>{Object.defineProperty(i,"M",{enumerable:!0,get:function(){return function e(i,r){return r in i?i[r]:"then"in i&&"function"==typeof i.then?i.then(i=>e(i,r)):"function"==typeof i&&"default"===r?i:void 0}}})},96330:e=>{e.exports=require("@prisma/client")}};var i=require("../../../webpack-api-runtime.js");i.C(e);var r=i(i.s=27110);module.exports=r})();

CasperSecurity Mini