From 70f9118d82aed3ad42955eb772da148aa159e897 Mon Sep 17 00:00:00 2001 From: counterweight Date: Fri, 21 Feb 2025 16:07:29 +0100 Subject: [PATCH] redirect nicely depending on authorized or not --- src/middlewares/redirectHomeIfAuthorized.js | 10 ++++++++++ .../redirectIfNotAuthorizedMiddleware.js | 2 +- src/routes/webRoutes.js | 14 ++++++++++++-- src/views/{index.ejs => login.ejs} | 0 4 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 src/middlewares/redirectHomeIfAuthorized.js rename src/views/{index.ejs => login.ejs} (100%) diff --git a/src/middlewares/redirectHomeIfAuthorized.js b/src/middlewares/redirectHomeIfAuthorized.js new file mode 100644 index 0000000..9619c68 --- /dev/null +++ b/src/middlewares/redirectHomeIfAuthorized.js @@ -0,0 +1,10 @@ +const sessionService = require('../services/sessionService'); + +async function redirectHomeIfAuthorized(req, res, next) { + if (await sessionService.isSessionAuthorized(req.cookies.sessionUuid)) { + return res.redirect('/home'); + } + next(); +} + +module.exports = redirectHomeIfAuthorized; diff --git a/src/middlewares/redirectIfNotAuthorizedMiddleware.js b/src/middlewares/redirectIfNotAuthorizedMiddleware.js index 93fbc32..f4b9e47 100644 --- a/src/middlewares/redirectIfNotAuthorizedMiddleware.js +++ b/src/middlewares/redirectIfNotAuthorizedMiddleware.js @@ -2,7 +2,7 @@ const sessionService = require('../services/sessionService'); async function redirectIfNotAuthorizedMiddleware(req, res, next) { if (!(await sessionService.isSessionAuthorized(req.cookies.sessionUuid))) { - return res.redirect('/'); + return res.redirect('/login'); } next(); } diff --git a/src/routes/webRoutes.js b/src/routes/webRoutes.js index 911995e..0e0b60d 100644 --- a/src/routes/webRoutes.js +++ b/src/routes/webRoutes.js @@ -5,9 +5,19 @@ const redirectIfNotAuthorizedMiddleware = require('../middlewares/redirectIfNotA const invitesService = require('../services/invitesService'); const attachPublicKeyMiddleware = require('../middlewares/attachPublicKeyMiddleware'); const redirectIfMissingProfileDetailsMiddleware = require('../middlewares/redirectIfMissingProfileDetailsMiddleware'); +const redirectHomeIfAuthorized = require('../middlewares/redirectHomeIfAuthorized'); -router.get('/', (req, res) => { - res.render('index', { uuid: req.cookies.sessionUuid }); +router.get( + '/', + redirectHomeIfAuthorized, + redirectIfNotAuthorizedMiddleware, + (req, res) => { + res.redirect('/login'); + } +); + +router.get('/login', redirectHomeIfAuthorized, (req, res) => { + res.render('login', { uuid: req.cookies.sessionUuid }); }); router.get('/invite/:inviteUuid', async (req, res) => { diff --git a/src/views/index.ejs b/src/views/login.ejs similarity index 100% rename from src/views/index.ejs rename to src/views/login.ejs