From 608153b461ebb1fffefea16c2a7ecfbb5be29a11 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Tue, 23 Jul 2024 14:30:27 -0700 Subject: [PATCH] Commented out admin check, unsure as to whether or not more than one admin can exist --- .../TabPanels/Account/TeamPanel.jsx | 2 +- Client/src/Pages/Auth/Register/Register.jsx | 4 +-- Server/controllers/authController.js | 29 ++++++++++--------- Server/db/MongoDB.js | 3 +- Server/models/InviteToken.js | 2 +- Server/validation/joi.js | 6 ++-- 6 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Client/src/Components/TabPanels/Account/TeamPanel.jsx b/Client/src/Components/TabPanels/Account/TeamPanel.jsx index 77b8ba12b..5f3e501c5 100644 --- a/Client/src/Components/TabPanels/Account/TeamPanel.jsx +++ b/Client/src/Components/TabPanels/Account/TeamPanel.jsx @@ -185,7 +185,7 @@ const TeamPanel = () => { "/auth/invite", { email: toInvite.email, - role: [toInvite.role], + role: toInvite.role, }, { headers: { Authorization: `Bearer ${authToken}` } } ); diff --git a/Client/src/Pages/Auth/Register/Register.jsx b/Client/src/Pages/Auth/Register/Register.jsx index 662729eac..3b6b43306 100644 --- a/Client/src/Pages/Auth/Register/Register.jsx +++ b/Client/src/Pages/Auth/Register/Register.jsx @@ -49,6 +49,7 @@ const Register = ({ isAdmin }) => { token, }); const { role, email } = res.data.data; + console.log(role); setForm({ ...form, email, role }); } catch (error) { console.log(error); @@ -60,8 +61,7 @@ const Register = ({ isAdmin }) => { const handleSubmit = async (e) => { e.preventDefault(); - - const registerForm = { ...form, role: isAdmin ? ["admin"] : [] }; + const registerForm = { ...form, role: isAdmin ? ["admin"] : form.role }; const { error } = credentials.validate(registerForm, { abortEarly: false, context: { password: form.password }, diff --git a/Server/controllers/authController.js b/Server/controllers/authController.js index cec65eecd..88a7c7f71 100644 --- a/Server/controllers/authController.js +++ b/Server/controllers/authController.js @@ -59,20 +59,21 @@ const registerController = async (req, res, next) => { return; } - // Check if an admin user exists, if so, error - try { - const admin = await req.db.checkAdmin(req, res); - console.log(admin); - if (admin === true) { - throw new Error(errorMessages.AUTH_ADMIN_EXISTS); - } - } catch (error) { - console.log("WEEEEEEE", error.message); - error.service = SERVICE_NAME; - error.status = 403; - next(error); - return; - } + // TODO Can there be more than one admin? + // // Check if an admin user exists, if so, error + // try { + // const admin = await req.db.checkAdmin(req, res); + // console.log(admin); + // if (admin === true) { + // throw new Error(errorMessages.AUTH_ADMIN_EXISTS); + // } + // } catch (error) { + // console.log("WEEEEEEE", error.message); + // error.service = SERVICE_NAME; + // error.status = 403; + // next(error); + // return; + // } // Create a new user try { diff --git a/Server/db/MongoDB.js b/Server/db/MongoDB.js index 05b7ca4ab..c3863ce36 100644 --- a/Server/db/MongoDB.js +++ b/Server/db/MongoDB.js @@ -172,6 +172,7 @@ const getAllUsers = async (req, res) => { const requestInviteToken = async (req, res) => { try { + console.log(req.body.role); await InviteToken.deleteMany({ email: req.body.email }); let inviteToken = new InviteToken({ email: req.body.email, @@ -188,7 +189,7 @@ const requestInviteToken = async (req, res) => { const getInviteToken = async (req, res) => { try { console.log(req.body.token); - const invite = await InviteToken.findOneAndDelete({ + const invite = await InviteToken.findOne({ token: req.body.token, }); if (invite === null) { diff --git a/Server/models/InviteToken.js b/Server/models/InviteToken.js index e1e3413e9..10515dadb 100644 --- a/Server/models/InviteToken.js +++ b/Server/models/InviteToken.js @@ -8,7 +8,7 @@ const InviteTokenSchema = mongoose.Schema( unique: true, }, role: { - type: String, + type: Array, required: true, }, token: { diff --git a/Server/validation/joi.js b/Server/validation/joi.js index eb298bb28..6384f13ba 100644 --- a/Server/validation/joi.js +++ b/Server/validation/joi.js @@ -68,7 +68,7 @@ const editUserBodyValidation = joi.object({ /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*()])[A-Za-z0-9!@#$%^&*()]+$/ ), deleteProfileImage: joi.boolean(), - role: joi.string(), + role: joi.array(), }); const recoveryValidation = joi.object({ @@ -107,9 +107,7 @@ const inviteBodyValidation = joi.object({ "string.empty": "Email is required", "string.email": "Must be a valid email address", }), - role: joi.string().required().messages({ - "string.empty": "Role is required", - }), + role: joi.array().required(), }); const inviteVerifciationBodyValidation = joi.object({