From de921c65540862472070c2e1abc4934b020f9e7c Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 27 Nov 2025 10:37:49 +0530 Subject: [PATCH] Inactive admin user api updated --- app/controllers/auth.controller.js | 164 +++++++++++++---------------- app/controllers/user.controller.js | 4 +- 2 files changed, 77 insertions(+), 91 deletions(-) diff --git a/app/controllers/auth.controller.js b/app/controllers/auth.controller.js index 4209d9b..e061c61 100644 --- a/app/controllers/auth.controller.js +++ b/app/controllers/auth.controller.js @@ -26,6 +26,81 @@ exports.register = async (req, res) => { } }; +//Admin user and Establishment user login +exports.login = async (req, res) => { + try { + const { email, password } = req.body; + + let userRole = null; + let userData = null; + + // Try EstablishmentUser first + userData = await EstablishmentUser.findOne({ where: { email } }); + if (userData) { + userRole = "EstablishmentUser"; + } else { + // Try Admin user + userData = await User.findOne({ where: { email } }); + if (userData) { + userRole = "Admin"; + } + } + + // No user found + if (!userData) { + return res.status(404).json({ status: "failed", message: "Invalid user", data: "" }); + } + + // Check ACTIVE status + if (!userData.is_active) { + return res.status(403).json({ status: "failed", message: "User account is inactive", data: "" }); + } + + // Check password + const validPass = await bcrypt.compare(password, userData.password); + if (!validPass) { + return res.status(401).json({ status: "failed", message: "Invalid password", data: "" }); + } + + // Prepare token data + let tokenData = { + id: userData.id, + email: userData.email, + name: userData.name, + role: userRole, + last_login: userData.last_login, + }; + + if (userRole === "EstablishmentUser") { + tokenData.establishment_id = userData.establishment_id; + tokenData.establishment_data = await Establishment.findByPk(userData.establishment_id); + + await EstablishmentUser.update( + { last_login: new Date(), updated_at: new Date() }, + { where: { id: userData.id } } + ); + } else { + await User.update( + { last_login: new Date() }, + { where: { id: userData.id } } + ); + } + + // Generate JWT token + const token = jwt.sign(tokenData, process.env.JWT_SECRET, { + expiresIn: "6h", + }); + + return res.status(200).json({ status: "success", message: "Login successful", data: token }); + + } catch (err) { + return res.status(500).json({ + status: "failed", + message: err.message, + }); + } +}; + // Login user // exports.login = async (req, res) => { // try { @@ -65,92 +140,3 @@ exports.register = async (req, res) => { // } // }; -exports.login = async (req, res) => { - try { - const { email, password } = req.body; - - let userRole = null; - let userData = null; - - // Try EstablishmentUser first - userData = await EstablishmentUser.findOne({ where: { email } }); - if (userData) { - userRole = "EstablishmentUser"; - } else { - // Try Admin user - userData = await User.findOne({ where: { email } }); - if (userData) { - userRole = "Admin"; - } - } - - // No user found - if (!userData) { - return res.status(404).json({ - status: "failed", - message: "Invalid user", - data: "" - }); - } - - // Check ACTIVE status - if (!userData.is_active) { - return res.status(403).json({ - status: "failed", - message: "User account is inactive", - data: "" - }); - } - - // Check password - const validPass = await bcrypt.compare(password, userData.password); - if (!validPass) { - return res.status(401).json({ - status: "failed", - message: "Invalid password", - data: "" - }); - } - - // Prepare token data - let tokenData = { - id: userData.id, - email: userData.email, - name: userData.name, - role: userRole, - last_login: userData.last_login, - }; - - if (userRole === "EstablishmentUser") { - tokenData.establishment_id = userData.establishment_id; - tokenData.establishment_data = await Establishment.findByPk(userData.establishment_id); - - await EstablishmentUser.update( - { last_login: new Date(), updated_at: new Date() }, - { where: { id: userData.id } } - ); - } else { - await User.update( - { last_login: new Date() }, - { where: { id: userData.id } } - ); - } - - // Generate JWT token - const token = jwt.sign(tokenData, process.env.JWT_SECRET, { - expiresIn: "6h", - }); - - return res.status(200).json({ - status: "success", - message: "Login successful", - data: token - }); - - } catch (err) { - return res.status(500).json({ - status: "failed", - message: err.message, - }); - } -}; \ No newline at end of file diff --git a/app/controllers/user.controller.js b/app/controllers/user.controller.js index c3f8661..c676334 100644 --- a/app/controllers/user.controller.js +++ b/app/controllers/user.controller.js @@ -59,8 +59,8 @@ exports.getUserById = async (req, res) => { exports.updateUser = async (req, res) => { try { - const { name, email } = req.body; - const [updated] = await User.update({ name, email }, { where: { id: req.params.id } }); + const { name, email,is_active } = req.body; + const [updated] = await User.update({ name, email, is_active}, { where: { id: req.params.id } }); if (updated) { const updatedUser = await User.findByPk(req.params.id);