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

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.ca/private_html/.next/server/pages/api/auth/signup.js
"use strict";(()=>{var e={};e.id=708,e.ids=[708],e.modules={8667:(e,o)=>{Object.defineProperty(o,"A",{enumerable:!0,get:function(){return t}});var t=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}({})},17718:(e,o,t)=>{t.r(o),t.d(o,{config:()=>f,default:()=>g,routeModule:()=>h});var r={};t.r(r),t.d(r,{default:()=>m});var i=t(33480),n=t(8667),s=t(86435),a=t(76760),l=t(74729),c=t.n(l),u=t(88182),d=t(55511),p=t.n(d);async function m(e,o){if("POST"!==e.method)return o.status(405).json({message:"Method not allowed"});let{email:t,password:r,firstName:i,lastName:n,preferredLanguage:s,role:l,businessProfileId:d}=e.body;if(!t||!r)return o.status(400).json({message:"Email and password are required"});try{if(console.log("Starting user registration process..."),console.log("Received data:",{email:t,firstName:i,lastName:n,preferredLanguage:s,role:l,businessProfileId:d}),!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t))return o.status(400).json({message:"Please enter a valid email address"});if(r.length<8)return o.status(400).json({message:"Password must be at least 8 characters long"});if("LAWYER"===l&&!d)return o.status(400).json({message:"Lawyers must be associated with a business profile"});if(console.log("Checking for existing user..."),await a.z.user.findUnique({where:{email:t}}))return console.log("User already exists:",t),o.status(409).json({message:"An account with this email already exists. Please try logging in instead."});console.log("Hashing password...");let e=await c().hash(r,10);console.log("Creating new user...");let m=await a.z.user.create({data:{email:t,password:e,name:i?`${i} ${n||""}`.trim():t.split("@")[0],role:l||"USER"}});if("LAWYER"===l&&d){console.log("Adding lawyer to business profile:",d);try{await a.z.businessProfile.update({where:{id:d},data:{members:{connect:{id:m.id}}}}),console.log("Successfully added lawyer to business profile")}catch(e){console.error("Error adding lawyer to business profile:",e)}}await a.z.registration.updateMany({where:{email:t,userId:null},data:{userId:m.id}}),console.log("User created successfully:",{id:m.id,email:m.email,role:m.role});try{let e="fr"===s;console.log("Sending welcome email...");let o=p().randomBytes(32).toString("hex");await a.z.verificationToken.create({data:{identifier:t,token:o,expires:new Date(Date.now()+864e5)}}),await (0,u.ZM)({to:t,subject:e?"Bienvenue chez Action Collective !":"Welcome to Action Collective!",text:e?`Bienvenue, ${i||m.name||t.split("@")[0]} ! Merci de rejoindre le mouvement pour la justice et les droits humains.`:`Welcome, ${i||m.name||t.split("@")[0]}! Thank you for joining Action Collective.`,html:e?`<div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; background: #f9f9f9; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.07);">
  <div style="background: #1a2238; color: #fff; padding: 32px 24px 16px 24px;">
    <h1 style="margin: 0 0 8px 0; font-size: 2em;">Bienvenue${i?`, ${i}`:""} chez Action Collective !</h1>
    <p style="margin: 0; font-size: 1.1em;">Merci de rejoindre le mouvement pour la justice et les droits humains.</p>
  </div>
  <div style="padding: 24px;">
    <h2 style="color: #2563eb; margin-top: 0;">๐Ÿ›ก๏ธ \xc0 propos du fondateur โ€“ Danny William Perez</h2>
    <p><strong>Tel que pr\xe9sent\xe9 dans le Journal de Montr\xe9al d'aujourd'hui โ€“ 31 mai 2025</strong></p>
    <p>
      <a href="https://www.Action-Collective.info" style="color: #2563eb;">www.Action-Collective.info</a> |
      <a href="https://www.Class-Action.info" style="color: #2563eb;">www.Class-Action.info</a>
    </p>
    <blockquote style="border-left: 4px solid #2563eb; margin: 16px 0; padding-left: 16px; color: #444;">
      "Je n'ai pas attendu un avocat. Je suis devenu la loi."<br>
      <em>Ce mouvement n'a pas commenc\xe9 dans une salle d'audience โ€” il a commenc\xe9 dans une cellule de prison.</em>
    </blockquote>
    <p>
      Danny William Perez, d\xe9tenu \xe0 la prison de Bordeaux de mars \xe0 octobre 2023, s'est vu syst\xe9matiquement refuser son droit l\xe9gal \xe0 une heure de sortie quotidienne โ€” un droit humain fondamental garanti par la loi qu\xe9b\xe9coise et les trait\xe9s internationaux.
    </p>
    <ul>
      <li>๐Ÿ–‹๏ธ Il a r\xe9dig\xe9 une demande d'habeas corpus sur l'ordinateur juridique limit\xe9 de la prison</li>
      <li>๐Ÿงพ L'a fait assermenter avec l'aide d'un agent correctionnel</li>
      <li>๐Ÿ“  L'a d\xe9pos\xe9e lui-m\xeame aupr\xe8s du greffe du tribunal</li>
      <li>โš–๏ธ A poursuivi le gouvernement du Qu\xe9bec devant la Cour sup\xe9rieure โ€” deux fois, et a gagn\xe9 les deux fois</li>
    </ul>
    <p>
      Ses actions ont forc\xe9 la reconnaissance, ouvert la porte \xe0 la justice et jet\xe9 les bases de ce qui allait devenir :<br>
      <strong>๐Ÿ”ฅ RECOURS COLLECTIF DOSSIER N\xb0 500-06-001298-245</strong><br>
      Officiellement autoris\xe9 par la Cour sup\xe9rieure du Qu\xe9bec le 12 d\xe9cembre 2024
    </p>
    <blockquote style="border-left: 4px solid #2563eb; margin: 16px 0; padding-left: 16px; color: #444;">
      "Prendre la parole derri\xe8re les barreaux est un acte de r\xe9sistance.<br>
      D\xe9poser cette action est un acte d'espoir โ€” pour ceux qui sont encore \xe0 l'int\xe9rieur, et pour ceux qu'on a oubli\xe9s \xe0 l'ext\xe9rieur."<br>
      <strong>โ€” Danny William Perez</strong>
    </blockquote>
    <h3 style="color: #2563eb;">โ— Pourquoi c'est important</h3>
    <ul>
      <li><strong>๐Ÿ’ฅ Le droit viol\xe9 :</strong> Tout d\xe9tenu au Qu\xe9bec a le droit l\xe9gal \xe0 au moins une heure d'exercice en plein air par jour (article 10 du r\xe8glement sur les services correctionnels du Qu\xe9bec). Ce droit est garanti par la Charte des droits et libert\xe9s de la personne et les R\xe8gles Mandela de l'ONU.</li>
      <li><strong>โš ๏ธ L'impact humain :</strong> Effondrement de la sant\xe9 mentale, d\xe9clin physique, et d\xe9shumanisation caus\xe9s par le refus d'air, de lumi\xe8re et de mouvement.</li>
      <li><strong>๐Ÿ’ผ Ce que le recours collectif r\xe9clame :</strong> 1 500 $ par jour refus\xe9, 2 000 000 $ en dommages punitifs, une injonction permanente et la responsabilisation du syst\xe8me.</li>
      <li><strong>๐Ÿ“ข Qui est inclus ?</strong> Toute personne d\xe9tenue \xe0 la prison de Bordeaux entre le 1er janvier 2022 et le jugement final, \xe0 qui on a refus\xe9 la sortie (avec certaines exclusions).</li>
    </ul>
    <p>
      ๐Ÿ“ฃ <strong>Un avis officiel a \xe9t\xe9 publi\xe9 aujourd'hui โ€” 31 mai 2025 โ€” dans le Journal de Montr\xe9al.</strong>
    </p>
    <p>
      ๐Ÿ“Ž Jugement complet : <a href="https://www.canlii.org/fr/qc/qccs/doc/2024/2024qccs4539/2024qccs4539.html" style="color: #2563eb;">2024 QCCS 4539 sur CanLII</a><br>
      ๐Ÿง‘โ€โš–๏ธ Avocats : Arsenault Dufresne Wee Avocats<br>
      ๐ŸŒ <a href="https://www.class-action.info" style="color: #2563eb;">www.class-action.info</a> | <a href="https://www.action-collective.info" style="color: #2563eb;">www.action-collective.info</a>
    </p>
    <p style="margin-top: 32px; font-size: 1.1em;">
      <strong>Ce n'est pas qu'un proc\xe8s. C'est un mouvement pour les droits humains.<br>
      Libert\xe9 M\xeame en Prison | Freedom Even in Prison</strong>
    </p>
    <p style="color: #888; font-size: 0.95em;">
      #DannyWilliamPerez #RecoursCollectif #Libert\xe9M\xeameEnCellule #FreedomEvenInPrison #JusticePourBordeaux #JusticeQu\xe9bec #DroitsDesD\xe9tenus #UneHeureParJour #R\xe9formeDesPrisons #ADWAvocats
    </p>
  </div>
</div>`:`<div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; background: #f9f9f9; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.07);">
  <div style="background: #1a2238; color: #fff; padding: 32px 24px 16px 24px;">
    <h1 style="margin: 0 0 8px 0; font-size: 2em;">Welcome${i?`, ${i}`:""} to Action Collective!</h1>
    <p style="margin: 0; font-size: 1.1em;">Thank you for joining the movement for justice and human rights.</p>
  </div>
  <div style="padding: 24px;">
    <h2 style="color: #2563eb; margin-top: 0;">๐Ÿ›ก๏ธ About the Founder โ€“ Danny William Perez</h2>
    <p><strong>As featured in today's Journal de Montr\xe9al โ€“ May 31, 2025</strong></p>
    <p>
      <a href="https://www.Action-Collective.info" style="color: #2563eb;">www.Action-Collective.info</a> |
      <a href="https://www.Class-Action.info" style="color: #2563eb;">www.Class-Action.info</a>
    </p>
    <blockquote style="border-left: 4px solid #2563eb; margin: 16px 0; padding-left: 16px; color: #444;">
      "I didn't wait for a lawyer. I became the law."<br>
      <em>This movement didn't start in a courtroom โ€” it started in a prison cell.</em>
    </blockquote>
    <p>
      Danny William Perez, detained at Bordeaux Prison from March to October 2023, was systematically denied his legal right to one hour of daily outdoor time โ€” a basic human right enshrined in Quebec law and international treaties.
    </p>
    <ul>
      <li>๐Ÿ–‹๏ธ Drafted a habeas corpus application using the jail's limited legal computer</li>
      <li>๐Ÿงพ Had it sworn in with the help of a correctional officer</li>
      <li>๐Ÿ“  Filed it himself through the court clerk</li>
      <li>โš–๏ธ Brought the Quebec government before the Superior Court โ€” twice, and won both times</li>
    </ul>
    <p>
      His actions forced recognition, opened the door to justice, and laid the foundation for what would become:<br>
      <strong>๐Ÿ”ฅ CLASS ACTION FILE NO. 500-06-001298-245</strong><br>
      Officially authorized by the Superior Court of Quebec on December 12, 2024
    </p>
    <blockquote style="border-left: 4px solid #2563eb; margin: 16px 0; padding-left: 16px; color: #444;">
      "Speaking up from behind bars is an act of resistance.<br>
      Filing this action is an act of hope โ€” for those still inside, and for those forgotten outside."<br>
      <strong>โ€” Danny William Perez</strong>
    </blockquote>
    <h3 style="color: #2563eb;">โ— Why This Matters</h3>
    <ul>
      <li><strong>๐Ÿ’ฅ The Right Being Violated:</strong> Every detainee in Quebec has the legal right to at least one hour of outdoor exercise per day (Article 10 of Quebec's correctional regulations). This is backed by the Quebec Charter of Human Rights and the UN Mandela Rules.</li>
      <li><strong>โš ๏ธ The Human Impact:</strong> Mental health breakdown, physical decline, and dehumanization from denial of air, light, and movement.</li>
      <li><strong>๐Ÿ’ผ What the Class Action Demands:</strong> $1,500 per day denied, $2,000,000 in punitive damages, a permanent injunction, and accountability.</li>
      <li><strong>๐Ÿ“ข Who Is Included?</strong> Everyone detained at Bordeaux Prison between January 1, 2022, and the final judgment, who was denied outdoor time (with some exclusions).</li>
    </ul>
    <p>
      ๐Ÿ“ฃ <strong>An official notice has been published today โ€” May 31, 2025 โ€” in the Journal de Montr\xe9al.</strong>
    </p>
    <p>
      ๐Ÿ“Ž Full case judgment: <a href="https://www.canlii.org/en/qc/qccs/doc/2024/2024qccs4539/2024qccs4539.html" style="color: #2563eb;">2024 QCCS 4539 on CanLII</a><br>
      ๐Ÿง‘โ€โš–๏ธ Legal counsel: Arsenault Dufresne Wee Avocats<br>
      ๐ŸŒ <a href="https://www.class-action.info" style="color: #2563eb;">www.class-action.info</a> | <a href="https://www.action-collective.info" style="color: #2563eb;">www.action-collective.info</a>
    </p>
    <p style="margin-top: 32px; font-size: 1.1em;">
      <strong>This isn't just a lawsuit. It's a human rights movement.<br>
      Libert\xe9 M\xeame en Prison | Freedom Even in Prison</strong>
    </p>
    <p style="color: #888; font-size: 0.95em;">
      #DannyWilliamPerez #ClassAction #Libert\xe9M\xeameEnCellule #FreedomEvenInPrison #JusticePourBordeaux #QuebecJustice #DroitsDesD\xe9tenus #OneHourADay #PrisonReform #ADWAvocats
    </p>
  </div>
</div>`}),console.log("Welcome email sent successfully")}catch(e){console.error("Error sending welcome email:",e)}let{password:g,...f}=m;return o.status(201).json(f)}catch(e){if(console.error("Error during user registration:",e),console.error("Error details:",{code:e.code,message:e.message,meta:e.meta,stack:e.stack}),"P2002"===e.code)return o.status(409).json({message:"An account with this email already exists"});if("P1001"===e.code)return o.status(500).json({message:"Database connection error. Please try again later."});return o.status(500).json({message:"An error occurred during registration",error:void 0})}}let g=(0,s.M)(r,"default"),f=(0,s.M)(r,"config"),h=new i.PagesAPIRouteModule({definition:{kind:n.A.PAGES_API,page:"/api/auth/signup",pathname:"/api/auth/signup",bundlePath:"",filename:""},userland:r})},21572:e=>{e.exports=require("nodemailer")},33480:(e,o,t)=>{e.exports=t(75600)},55511:e=>{e.exports=require("crypto")},74729:e=>{e.exports=require("bcryptjs")},75600:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:(e,o,t)=>{t.d(o,{z:()=>i});var r=t(96330);let i=globalThis.prisma??new r.PrismaClient({log:["error"]})},86435:(e,o)=>{Object.defineProperty(o,"M",{enumerable:!0,get:function(){return function e(o,t){return t in o?o[t]:"then"in o&&"function"==typeof o.then?o.then(o=>e(o,t)):"function"==typeof o&&"default"===t?o:void 0}}})},88182:(e,o,t)=>{t.d(o,{J1:()=>l,UI:()=>a,ZM:()=>s});var r=t(21572),i=t.n(r);let n=(()=>{if(!process.env.SMTP_HOST||!process.env.SMTP_USER||!process.env.SMTP_PASSWORD)return console.warn("[EMAIL] SMTP configuration missing, emails will be logged to console only"),null;try{return i().createTransport({host:process.env.SMTP_HOST,port:parseInt(process.env.SMTP_PORT||"587"),secure:"true"===process.env.SMTP_SECURE,auth:{user:process.env.SMTP_USER,pass:process.env.SMTP_PASSWORD},connectionTimeout:1e4,greetingTimeout:1e4,socketTimeout:1e4})}catch(e){return console.error("[EMAIL] Failed to create SMTP transporter:",e),null}})();async function s({to:e,subject:o,text:t,html:r}){try{if(!n)return console.log("[EMAIL] SMTP not configured, logging email to console:"),console.log(`[EMAIL] To: ${e}`),console.log(`[EMAIL] Subject: ${o}`),console.log(`[EMAIL] Text: ${t}`),console.log(`[EMAIL] HTML: ${r}`),{messageId:"console-logged"};let i=await n.sendMail({from:process.env.SMTP_FROM,to:e,subject:o,text:t,html:r});return console.log("Email sent:",i.messageId),i}catch(r){throw console.error("Error sending email:",r),console.log(`[EMAIL] Failed to send email to ${e}, subject: ${o}`),console.log(`[EMAIL] Email content would have been: ${t}`),r}}async function a(e,o,t=!1){let r=t?`Cher ${o},

Nous avons bien re\xe7u votre inscription \xe0 l'action collective. Nous vous contacterons bient\xf4t pour la suite du processus.

Cordialement,
L'\xe9quipe de l'action collective`:`Dear ${o},

We have received your registration for the class action. We will contact you soon to proceed with the next steps.

Best regards,
The Class Action Team`,i=t?`
      <div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;">
        <h2 style="color: #2563eb;">Confirmation de votre inscription</h2>
        <p>Cher ${o},</p>
        <p>Nous avons bien re\xe7u votre inscription \xe0 l'action collective. Nous vous contacterons bient\xf4t pour la suite du processus.</p>
        <p>Cordialement,<br>L'\xe9quipe de l'action collective</p>
      </div>
    `:`
      <div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;">
        <h2 style="color: #2563eb;">Registration Confirmation</h2>
        <p>Dear ${o},</p>
        <p>We have received your registration for the class action. We will contact you soon to proceed with the next steps.</p>
        <p>Best regards,<br>The Class Action Team</p>
      </div>
    `;return s({to:e,subject:t?"Confirmation de votre inscription \xe0 l'action collective":"Confirmation of your class action registration",text:r,html:i})}async function l(e,o,t="en"){let r=`https://action-collective.info/auth/reset-password?token=${o}`,i="fr"===t?`Pour r\xe9initialiser votre mot de passe, cliquez sur ce lien : ${r}
Ce lien expirera dans une heure.`:`To reset your password, click this link: ${r}
This link will expire in one hour.`,n="fr"===t?`<p>Pour r\xe9initialiser votre mot de passe, cliquez sur ce lien :</p><p><a href="${r}">${r}</a></p><p>Ce lien expirera dans une heure.</p>`:`<p>To reset your password, click this link:</p><p><a href="${r}">${r}</a></p><p>This link will expire in one hour.</p>`;return s({to:e,subject:"fr"===t?"R\xe9initialisation de votre mot de passe":"Reset your password",text:i,html:n})}},96330:e=>{e.exports=require("@prisma/client")}};var o=require("../../../webpack-api-runtime.js");o.C(e);var t=o(o.s=17718);module.exports=t})();

CasperSecurity Mini