Merge pull request #382 from bluewave-labs/fix/backend-validation

Synced password validation between frontend and backend, resolves #310
This commit is contained in:
Alexander Holliday
2024-07-18 23:18:31 -07:00
committed by GitHub
2 changed files with 44 additions and 10 deletions

View File

@@ -4,7 +4,7 @@ const nameSchema = joi
.string()
.max(50)
.trim()
.pattern(new RegExp("^[A-Za-z]+$"))
.pattern(/^[A-Za-z]+$/)
.messages({
"string.empty": "Name is required",
"string.max": "Name must be less than 50 characters long",

View File

@@ -6,14 +6,32 @@ const joi = require("joi");
const loginValidation = joi.object({
email: joi.string().email().required(),
password: joi.string().min(8).required(),
password: joi
.string()
.min(8)
.required()
.pattern(
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*()])[A-Za-z0-9!@#$%^&*()]+$/
),
});
const registerValidation = joi.object({
firstname: joi.string().required(),
lastname: joi.string().required(),
firstname: joi
.string()
.required()
.pattern(/^[A-Za-z]+$/),
lastname: joi
.string()
.required()
.pattern(/^[A-Za-z]+$/),
email: joi.string().email().required(),
password: joi.string().min(8).required(),
password: joi
.string()
.min(8)
.required()
.pattern(
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*()])[A-Za-z0-9!@#$%^&*()]+$/
),
profileImage: joi.any(),
role: joi.string().required(),
});
@@ -23,11 +41,21 @@ const editUserParamValidation = joi.object({
});
const editUserBodyValidation = joi.object({
firstname: joi.string(),
lastname: joi.string(),
firstname: joi.string().pattern(/^[A-Za-z]+$/),
lastname: joi.string().pattern(/^[A-Za-z]+$/),
profileImage: joi.any(),
newPassword: joi.string().min(8),
password: joi.string().min(8),
newPassword: joi
.string()
.min(8)
.pattern(
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*()])[A-Za-z0-9!@#$%^&*()]+$/
),
password: joi
.string()
.min(8)
.pattern(
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*()])[A-Za-z0-9!@#$%^&*()]+$/
),
deleteProfileImage: joi.boolean(),
role: joi.string(),
});
@@ -45,7 +73,13 @@ const recoveryTokenValidation = joi.object({
const newPasswordValidation = joi.object({
recoveryToken: joi.string().required(),
password: joi.string().min(8).required(),
password: joi
.string()
.min(8)
.required()
.pattern(
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*()])[A-Za-z0-9!@#$%^&*()]+$/
),
confirm: joi.string(),
});