Skip to content

Commit cf3a66d

Browse files
fix(validation): address Copilot review comments
- model.js: fix typo firstname → firstName in checkError sanitizer so profile-update errors are correctly redacted - user.schema.js: build min-size error message from config.zxcvbn.minSize instead of hardcoding 8, keeping message and config in sync - users.routes.js: PUT /api/users now validates with UserUpdate (partial) instead of the full User schema, consistent with MIGRATIONS.md guidance
1 parent 073c6c0 commit cf3a66d

3 files changed

Lines changed: 4 additions & 4 deletions

File tree

lib/middlewares/model.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ const getResultFromZod = (body, schema) => {
3939
*/
4040
const checkError = (result) => {
4141
if (result && result.error) {
42-
if (result.error.original && (result.error.original.password || result.error.original.firstname))
42+
if (result.error.original && (result.error.original.password || result.error.original.firstName))
4343
result.error.original = _.pick(result.error.original, config.whitelists.users.default);
44-
if (result.error._original && (result.error._original.password || result.error._original.firstname))
44+
if (result.error._original && (result.error._original.password || result.error._original.firstName))
4545
result.error._original = _.pick(result.error._original, config.whitelists.users.default);
4646
let description = '';
4747
result.error.details.forEach((err) => {

modules/users/models/user.schema.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ const User = z.object({
3030
if (val === '') return; // allow empty (OAuth users / no password set)
3131
zodHelpers.passwordRefinement(val, ctx);
3232
if (val.length < config.zxcvbn.minSize) {
33-
ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'Password length must be at least 8 characters long' });
33+
ctx.addIssue({ code: z.ZodIssueCode.custom, message: `Password length must be at least ${config.zxcvbn.minSize} characters long` });
3434
}
3535
}),
3636
resetPasswordToken: z.string().nullable().optional(),

modules/users/routes/users.routes.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export default (app) => {
2828
app
2929
.route('/api/users')
3030
.all(passport.authenticate('jwt', { session: false }), policy.isAllowed)
31-
.put(model.isValid(usersSchema.User), users.update)
31+
.put(model.isValid(usersSchema.UserUpdate), users.update)
3232
.delete(users.remove);
3333

3434
app.route('/api/users/password').post(passport.authenticate('jwt', { session: false }), policy.isAllowed, authPassword.updatePassword);

0 commit comments

Comments
 (0)