Implement password validation and update user model roles
This commit is contained in:
@@ -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(
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user