Implement password validation and update user model roles

This commit is contained in:
Isuru Bimsara
2026-08-15 00:24:36 +05:30
parent 81d0e65686
commit ef8db0988b
3 changed files with 58 additions and 22 deletions
+26 -9
View File
@@ -11,6 +11,7 @@
const db = require("../models");
const { hashPassword } = require("../utils/hashPassword.util");
const { validatePassword } = require("../utils/validation/validatePassword.util");
const { generateUserId, generateId } = require("../utils/idGen.util");
const { logActivity } = require("../services/activity.service");
const { sendMail } = require("../utils/mail.util");
@@ -26,15 +27,10 @@ exports.createNewUser = async (req, res) => {
firstName,
lastName,
email,
role,
roleID,
password,
accountType,
department,
} = req.body;
const hashedPassword = await hashPassword(process.env.DEFAULT_PASSWORD);
const userID = generateUserId();
const userExists = await User.findOne({ where: { email } });
if (userExists) {
await transaction.rollback();
@@ -45,6 +41,29 @@ exports.createNewUser = async (req, res) => {
});
}
let pass;
if(accountType === "admin" || accountType === "superadmin" || accountType === "manager" || accountType === "support_agent") {
pass = process.env.DEFAULT_PASSWORD;
}else{
pass = password;
}
const validatePasswordResult = validatePassword(pass);
if (!validatePasswordResult) {
await transaction.rollback();
return res.status(400).send({
success: false,
message: "Password does not meet the required criteria",
});
}
const hashedPassword = await hashPassword(pass);
const userID = generateUserId();
const newUser = await User.create(
{
id: userID,
@@ -53,12 +72,10 @@ exports.createNewUser = async (req, res) => {
email,
password: hashedPassword,
accountType,
role,
roleID: roleID || "N/A",
department: department || null,
},
{ transaction },
);
const newProfile = await Profile.create(
{