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

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.ca/private_html/.next/server/pages/api/student/profile.js
"use strict";(()=>{var e={};e.id=7130,e.ids=[7130],e.modules={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")},33480:(e,i,r)=>{e.exports=r(75600)},41822:(e,i,r)=>{r.d(i,{N:()=>n});var a=r(16382),o=r.n(a),t=r(74729),s=r(76760);let n={providers:[o()({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 s.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,t.compare)(e.password,i.password))return null;let{password:r,...a}=i;return{...a,name:a.name||a.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 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(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}},59505:(e,i,r)=>{r.r(i),r.d(i,{config:()=>f,default:()=>g,routeModule:()=>v});var a={};r.r(a),r.d(a,{default:()=>u});var o=r(33480),t=r(8667),s=r(86435),n=r(65542),l=r(41822);let c=new(r(96330)).PrismaClient;async function u(e,i){let r=await (0,n.getServerSession)(e,i,l.N);if(!r)return i.status(401).json({message:"Unauthorized"});if(!["LAW_STUDENT","LEGAL_INTERN"].includes(r.user.role))return i.status(403).json({message:"Access denied. Student role required."});let{method:a}=e;switch(a){case"GET":return d(e,i,r);case"PUT":return p(e,i,r);case"POST":return m(e,i,r);default:return i.setHeader("Allow",["GET","PUT","POST"]),i.status(405).json({message:`Method ${a} Not Allowed`})}}async function d(e,i,r){try{let e=r.user.id,a=await c.user.findUnique({where:{id:e},select:{id:!0,name:!0,email:!0,role:!0,username:!0,profilePicture:!0,bio:!0,title:!0,specialization:!0,availability:!0,officeLocation:!0,phone:!0,websiteUrl:!0,linkedinUrl:!0,isProfilePublic:!0,hourlyRate:!0,education:!0,certifications:!0,yearsOfExperience:!0,barNumber:!0,timezone:!0,pronouns:!0,proBono:!0,boldnessRating:!0,transparencyRating:!0,winRate:!0,totalCases:!0,wonCases:!0,lostCases:!0,averageRating:!0,isVerified:!0,gender:!0,address:!0,dateOfBirth:!0,occupation:!0,language:!0,notifications:!0,xpPoints:!0,level:!0,currentStreak:!0,totalBadges:!0,reviewsWritten:!0,forumPosts:!0,helpedOthers:!0,observationHours:!0,reformProposals:!0,wisdomScore:!0,civicEngagement:!0,accountBalance:!0,isPaymentVerified:!0,donationTotal:!0,subscriptionTier:!0,subscriptionExpiry:!0,theme:!0,emergencyContact:!0,emergencyPhone:!0,status:!0,experience:!0,rating:!0}});if(!a)return i.status(404).json({message:"Profile not found"});return i.status(200).json(a)}catch(e){return console.error("Error fetching student profile:",e),i.status(500).json({message:"Internal server error"})}}async function p(e,i,r){try{let a=r.user.id,o=e.body;if(!o.name||!o.email)return i.status(400).json({message:"Name and email are required"});if(await c.user.findFirst({where:{email:o.email,id:{not:a}}}))return i.status(400).json({message:"Email is already taken"});let t=await c.user.update({where:{id:a},data:{name:o.name,email:o.email,username:o.username,bio:o.bio,title:o.title,specialization:o.specialization,availability:o.availability,officeLocation:o.officeLocation,phone:o.phone,websiteUrl:o.websiteUrl,linkedinUrl:o.linkedinUrl,isProfilePublic:o.isProfilePublic,hourlyRate:o.hourlyRate?parseFloat(o.hourlyRate):void 0,education:o.education,certifications:o.certifications,yearsOfExperience:o.yearsOfExperience?parseInt(o.yearsOfExperience):void 0,barNumber:o.barNumber,timezone:o.timezone,pronouns:o.pronouns,proBono:o.proBono,boldnessRating:o.boldnessRating?parseFloat(o.boldnessRating):void 0,transparencyRating:o.transparencyRating?parseFloat(o.transparencyRating):void 0,winRate:o.winRate?parseFloat(o.winRate):void 0,totalCases:o.totalCases?parseInt(o.totalCases):void 0,wonCases:o.wonCases?parseInt(o.wonCases):void 0,lostCases:o.lostCases?parseInt(o.lostCases):void 0,averageRating:o.averageRating?parseFloat(o.averageRating):void 0,isVerified:o.isVerified,gender:o.gender,address:o.address,dateOfBirth:o.dateOfBirth,occupation:o.occupation,language:o.language,notifications:o.notifications,xpPoints:o.xpPoints?parseInt(o.xpPoints):void 0,level:o.level?parseInt(o.level):void 0,currentStreak:o.currentStreak?parseInt(o.currentStreak):void 0,totalBadges:o.totalBadges?parseInt(o.totalBadges):void 0,reviewsWritten:o.reviewsWritten?parseInt(o.reviewsWritten):void 0,forumPosts:o.forumPosts?parseInt(o.forumPosts):void 0,helpedOthers:o.helpedOthers,observationHours:o.observationHours?parseInt(o.observationHours):void 0,reformProposals:o.reformProposals,wisdomScore:o.wisdomScore?parseFloat(o.wisdomScore):void 0,civicEngagement:o.civicEngagement,accountBalance:o.accountBalance?parseFloat(o.accountBalance):void 0,isPaymentVerified:o.isPaymentVerified,donationTotal:o.donationTotal?parseFloat(o.donationTotal):void 0,subscriptionTier:o.subscriptionTier,subscriptionExpiry:o.subscriptionExpiry,theme:o.theme,emergencyContact:o.emergencyContact,emergencyPhone:o.emergencyPhone,status:o.status,experience:o.experience,rating:o.rating?parseFloat(o.rating):void 0},select:{id:!0,name:!0,email:!0,role:!0,username:!0,profilePicture:!0,bio:!0,title:!0,specialization:!0,availability:!0,officeLocation:!0,phone:!0,websiteUrl:!0,linkedinUrl:!0,isProfilePublic:!0,hourlyRate:!0,education:!0,certifications:!0,yearsOfExperience:!0,barNumber:!0,timezone:!0,pronouns:!0,proBono:!0,boldnessRating:!0,transparencyRating:!0,winRate:!0,totalCases:!0,wonCases:!0,lostCases:!0,averageRating:!0,isVerified:!0,gender:!0,address:!0,dateOfBirth:!0,occupation:!0,language:!0,notifications:!0,xpPoints:!0,level:!0,currentStreak:!0,totalBadges:!0,reviewsWritten:!0,forumPosts:!0,helpedOthers:!0,observationHours:!0,reformProposals:!0,wisdomScore:!0,civicEngagement:!0,accountBalance:!0,isPaymentVerified:!0,donationTotal:!0,subscriptionTier:!0,subscriptionExpiry:!0,theme:!0,emergencyContact:!0,emergencyPhone:!0,status:!0,experience:!0,rating:!0}});return i.status(200).json(t)}catch(e){return console.error("Error updating student profile:",e),i.status(500).json({message:"Internal server error"})}}async function m(e,i,r){try{let a=r.user.id,o=e.body;if(await c.user.findUnique({where:{id:a}}))return i.status(400).json({message:"Profile already exists"});if(!o.name||!o.email)return i.status(400).json({message:"Name and email are required"});let t=await c.user.update({where:{id:a},data:{name:o.name,email:o.email,username:o.username,bio:o.bio,title:o.title,specialization:o.specialization,availability:o.availability,officeLocation:o.officeLocation,phone:o.phone,websiteUrl:o.websiteUrl,linkedinUrl:o.linkedinUrl,isProfilePublic:o.isProfilePublic??!1,hourlyRate:o.hourlyRate?parseFloat(o.hourlyRate):void 0,education:o.education,certifications:o.certifications,yearsOfExperience:o.yearsOfExperience?parseInt(o.yearsOfExperience):void 0,barNumber:o.barNumber,timezone:o.timezone,pronouns:o.pronouns,proBono:o.proBono,boldnessRating:o.boldnessRating?parseFloat(o.boldnessRating):void 0,transparencyRating:o.transparencyRating?parseFloat(o.transparencyRating):void 0,winRate:o.winRate?parseFloat(o.winRate):void 0,totalCases:o.totalCases?parseInt(o.totalCases):void 0,wonCases:o.wonCases?parseInt(o.wonCases):void 0,lostCases:o.lostCases?parseInt(o.lostCases):void 0,averageRating:o.averageRating?parseFloat(o.averageRating):void 0,isVerified:o.isVerified,gender:o.gender,address:o.address,dateOfBirth:o.dateOfBirth,occupation:o.occupation,language:o.language,notifications:o.notifications,xpPoints:o.xpPoints?parseInt(o.xpPoints):void 0,level:o.level?parseInt(o.level):void 0,currentStreak:o.currentStreak?parseInt(o.currentStreak):void 0,totalBadges:o.totalBadges?parseInt(o.totalBadges):void 0,reviewsWritten:o.reviewsWritten?parseInt(o.reviewsWritten):void 0,forumPosts:o.forumPosts?parseInt(o.forumPosts):void 0,helpedOthers:o.helpedOthers,observationHours:o.observationHours?parseInt(o.observationHours):void 0,reformProposals:o.reformProposals,wisdomScore:o.wisdomScore?parseFloat(o.wisdomScore):void 0,civicEngagement:o.civicEngagement,accountBalance:o.accountBalance?parseFloat(o.accountBalance):void 0,isPaymentVerified:o.isPaymentVerified,donationTotal:o.donationTotal?parseFloat(o.donationTotal):void 0,subscriptionTier:o.subscriptionTier,subscriptionExpiry:o.subscriptionExpiry,theme:o.theme,emergencyContact:o.emergencyContact,emergencyPhone:o.emergencyPhone,status:o.status,experience:o.experience,rating:o.rating?parseFloat(o.rating):void 0},select:{id:!0,name:!0,email:!0,role:!0,username:!0,profilePicture:!0,bio:!0,title:!0,specialization:!0,availability:!0,officeLocation:!0,phone:!0,websiteUrl:!0,linkedinUrl:!0,isProfilePublic:!0,hourlyRate:!0,education:!0,certifications:!0,yearsOfExperience:!0,barNumber:!0,timezone:!0,pronouns:!0,proBono:!0,boldnessRating:!0,transparencyRating:!0,winRate:!0,totalCases:!0,wonCases:!0,lostCases:!0,averageRating:!0,isVerified:!0,gender:!0,address:!0,dateOfBirth:!0,occupation:!0,language:!0,notifications:!0,xpPoints:!0,level:!0,currentStreak:!0,totalBadges:!0,reviewsWritten:!0,forumPosts:!0,helpedOthers:!0,observationHours:!0,reformProposals:!0,wisdomScore:!0,civicEngagement:!0,accountBalance:!0,isPaymentVerified:!0,donationTotal:!0,subscriptionTier:!0,subscriptionExpiry:!0,theme:!0,emergencyContact:!0,emergencyPhone:!0,status:!0,experience:!0,rating:!0}});return i.status(201).json(t)}catch(e){return console.error("Error creating student profile:",e),i.status(500).json({message:"Internal server error"})}}let g=(0,s.M)(a,"default"),f=(0,s.M)(a,"config"),v=new o.PagesAPIRouteModule({definition:{kind:t.A.PAGES_API,page:"/api/student/profile",pathname:"/api/student/profile",bundlePath:"",filename:""},userland:a})},65542:e=>{e.exports=require("next-auth")},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:()=>o});var a=r(96330);let o=globalThis.prisma??new a.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=59505);module.exports=r})();

CasperSecurity Mini