From fa7a6726c4acdff7ad86b136a5da3bef4cb47172 Mon Sep 17 00:00:00 2001 From: Eric Mc Sween <5454374+emcsween@users.noreply.github.com> Date: Thu, 3 Jul 2025 17:47:30 -0400 Subject: [PATCH] Migrate renderRequestResetForm to zod GitOrigin-RevId: 9ae9eb6ea1bc2966406938b130e7e2410e770163 --- .../Features/PasswordReset/PasswordResetController.mjs | 10 +++++++++- .../src/Features/PasswordReset/PasswordResetRouter.mjs | 3 --- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/services/web/app/src/Features/PasswordReset/PasswordResetController.mjs b/services/web/app/src/Features/PasswordReset/PasswordResetController.mjs index 2963c56653..d1c8a4ee47 100644 --- a/services/web/app/src/Features/PasswordReset/PasswordResetController.mjs +++ b/services/web/app/src/Features/PasswordReset/PasswordResetController.mjs @@ -8,6 +8,7 @@ import UserSessionsManager from '../User/UserSessionsManager.js' import OError from '@overleaf/o-error' import EmailsHelper from '../Helpers/EmailHelper.js' import { expressify } from '@overleaf/promise-utils' +import { z, validateReq } from '../../infrastructure/Validation.js' async function setNewUserPassword(req, res, next) { let user @@ -195,8 +196,15 @@ async function renderSetPasswordForm(req, res, next) { }) } +const renderRequestResetFormSchema = z.object({ + query: z.object({ + error: z.string().optional(), + }), +}) + async function renderRequestResetForm(req, res) { - const errorQuery = req.query.error + const { query } = validateReq(req, renderRequestResetFormSchema) + const errorQuery = query.error let error = null if (errorQuery === 'token_expired') { error = 'password_reset_token_expired' diff --git a/services/web/app/src/Features/PasswordReset/PasswordResetRouter.mjs b/services/web/app/src/Features/PasswordReset/PasswordResetRouter.mjs index 79cbeaf3f8..fa3f11347c 100644 --- a/services/web/app/src/Features/PasswordReset/PasswordResetRouter.mjs +++ b/services/web/app/src/Features/PasswordReset/PasswordResetRouter.mjs @@ -18,9 +18,6 @@ export default { webRouter.get( '/user/password/reset', - validate({ - query: { error: Joi.string() }, - }), PasswordResetController.renderRequestResetForm ) webRouter.post(