From afbb7485dc45a3e02eef92b78afe2c88adf021bb Mon Sep 17 00:00:00 2001 From: matt Date: Mon, 21 Mar 2022 09:17:15 +0000 Subject: [PATCH] Added route and validation for individual user --- routes/admin.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/routes/admin.js b/routes/admin.js index c7b1e8e..e0729ce 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -49,6 +49,37 @@ router.get('/dashboard', async (req, res) => { }); }); +router.get(/user\/(.{36})(\/.*)?/, async (req, res, next) => { + let u; + try { + u = await new User(null, req.params[0]); + } catch (e) { + return res.status(400).render('error', { + title: 'Stratos - Error', + current: 'Dashboard', + name: req.session.fullName, + code: 400, + msg: e.message + }); + } + + if (!await u.hasAccess(await new User(null, req.session.userId))) + return res.redirect('/admin/dashboard'); + + next(); +}); + +router.get('/user/:id', async (req, res) => { + const u = await new User(null, req.params.id); + + return res.render('user', { + title: `Stratos - ${u.shortName}`, + current: 'Dashboard', + name: req.session.fullName, + user: u + }); +}); + module.exports = { root: '/admin', router: router