Merge pull request #243 from bluewave-labs/feat/check-admin

Feat/check admin, resolves #241
This commit is contained in:
Alexander Holliday authored and GitHub committed 2024-07-02 14:22:05 -07:00
commit 75d16b749d
4 files changed
+40

No files matched your search

+24
View File
@@ -151,6 +151,29 @@ const userEditController = async (req, res, next) => {
}
};
/**
* Checks to see if an admin account exists
* @async
* @param {Express.Request} req
* @param {Express.Response} res
* @returns {Promise<Express.Response>}
*/
const checkAdminController = async (req, res) => {
try {
const adminExists = await req.db.checkAdmin(req, res);
return res.status(200).json({
success: true,
msg: successMessages.AUTH_ADMIN_EXISTS,
data: adminExists,
});
} catch (error) {
error.service = SERVICE_NAME;
next(error);
return;
}
};
/**
* Returns a recovery token
* @async
@@ -238,6 +261,7 @@ module.exports = {
registerController,
loginController,
userEditController,
checkAdminController,
recoveryRequestController,
validateRecoveryTokenController,
resetPasswordController,
+13
View File
@@ -171,6 +171,18 @@ const resetPassword = async (req, res) => {
}
};
const checkAdmin = async (req, res) => {
try {
const admin = await UserModel.findOne({ role: "admin" });
if (admin !== null) {
return true;
}
return false;
} catch (error) {
throw error;
}
};
//****************************************
// Monitors
//****************************************
@@ -510,6 +522,7 @@ module.exports = {
requestRecoveryToken,
validateRecoveryToken,
resetPassword,
checkAdmin,
getAllMonitors,
getMonitorById,
getMonitorsByUserId,
+2
View File
@@ -10,12 +10,14 @@ const {
recoveryRequestController,
validateRecoveryTokenController,
resetPasswordController,
checkAdminController,
} = require("../controllers/authController");
//Auth routes
router.post("/register", upload.single("profileImage"), registerController);
router.post("/login", loginController);
router.post("/user/:userId", verifyJWT, userEditController);
router.get("/users/admin", checkAdminController);
//Recovery routes
router.post("/recovery/request", recoveryRequestController);
+1
View File
@@ -56,6 +56,7 @@ const successMessages = {
AUTH_CREATE_RECOVERY_TOKEN: "Recovery token created successfully",
AUTH_VERIFY_RECOVERY_TOKEN: "Recovery token verified successfully",
AUTH_RESET_PASSWORD: "Password reset successfully",
AUTH_ADMIN_CHECK: "Admin check completed successfully",
// Check Controller
CHECK_CREATE: "Check created successfully",