diff --git a/controllers/users.js b/controllers/users.js index 858212fa4..fa4e69c03 100644 --- a/controllers/users.js +++ b/controllers/users.js @@ -720,7 +720,7 @@ const addUserIntro = async (req, res) => { } }; -const getUserIntro = async (req, res) => { +/* const getUserIntro = async (req, res) => { try { const data = await userQuery.getJoinData(req.params.userId); if (data.length) { @@ -737,6 +737,33 @@ const getUserIntro = async (req, res) => { logger.error("Could Not Get User Data", err); return res.boom.badImplementation(INTERNAL_SERVER_ERROR); } +}; */ +const getUserIntro = async (req, res) => { + try { + const { userId } = req.params; + const loggedInUserId = req.userData.id; + const data = await userQuery.getJoinData(userId); + + if (data.length) { + if (userId === loggedInUserId || req.userData.roles.super_user) { + return res.json({ + message: "User data returned", + data: data, + }); + } else { + return res.status(403).json({ + message: "You're not authorized to view this page", + }); + } + } else { + return res.status(404).json({ + message: "Data Not Found", + }); + } + } catch (err) { + logger.error("Could Not Get User Data", err); + return res.boom.badImplementation(INTERNAL_SERVER_ERROR); + } }; /** diff --git a/routes/users.js b/routes/users.js index 9b29099d7..41d6214e0 100644 --- a/routes/users.js +++ b/routes/users.js @@ -33,7 +33,7 @@ router.patch( users.updateDiscordUserNickname ); router.get("/:username", users.getUser); -router.get("/:userId/intro", authenticate, authorizeRoles([SUPERUSER]), users.getUserIntro); +router.get("/:userId/intro", authenticate, users.getUserIntro); router.put("/self/intro", authenticate, userValidator.validateJoinData, users.addUserIntro); router.get("/:id/skills", users.getUserSkills); router.get("/:id/badges", getUserBadges);