From 1ec83c5e5dbbc83544889ca667b68aac984efcae Mon Sep 17 00:00:00 2001 From: counterweight Date: Thu, 6 Mar 2025 00:33:15 +0100 Subject: [PATCH] another --- src/middlewares/index.js | 6 +++- .../rejectIfNotAuthorizedMiddleware.js | 30 ++++++++++++------- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/middlewares/index.js b/src/middlewares/index.js index 8ad10ef..4a13843 100644 --- a/src/middlewares/index.js +++ b/src/middlewares/index.js @@ -1,7 +1,6 @@ const redirectIfNotAuthorizedMiddleware = require('./redirectIfNotAuthorizedMiddleware'); const redirectIfMissingProfileDetailsMiddleware = require('./redirectIfMissingProfileDetailsMiddleware'); const redirectHomeIfAuthorized = require('./redirectHomeIfAuthorized'); -const rejectIfNotAuthorizedMiddleware = require('./rejectIfNotAuthorizedMiddleware'); const sessionService = require('../services/sessionService'); const AttachPublicKeyMiddlewareProvider = require('./attachPublicKeyMiddleware'); @@ -16,6 +15,11 @@ const createSessionMiddleware = new CreateSessionMiddlewareProvider({ sessionService, }).provide(); +const RejectIfNotAuthorizedMiddleware = require('./rejectIfNotAuthorizedMiddleware'); +const rejectIfNotAuthorizedMiddleware = new RejectIfNotAuthorizedMiddleware( + sessionService +).provide(); + module.exports = { redirectIfNotAuthorizedMiddleware, attachPublicKeyMiddleware, diff --git a/src/middlewares/rejectIfNotAuthorizedMiddleware.js b/src/middlewares/rejectIfNotAuthorizedMiddleware.js index 85e67ad..548830e 100644 --- a/src/middlewares/rejectIfNotAuthorizedMiddleware.js +++ b/src/middlewares/rejectIfNotAuthorizedMiddleware.js @@ -1,13 +1,23 @@ -const sessionService = require('../services/sessionService'); - -async function rejectIfNotAuthorizedMiddleware(req, res, next) { - if (!(await sessionService.isSessionAuthorized(req.cookies.sessionUuid))) { - return res.status(403).json({ - success: false, - message: 'Your session is not authorized.', - }); +class RejectIfNotAuthorizedMiddleware { + constructor({ sessionService }) { + this.sessionService = sessionService; + } + + provide() { + return async (req, res, next) => { + if ( + !(await this.sessionService.isSessionAuthorized( + req.cookies.sessionUuid + )) + ) { + return res.status(403).json({ + success: false, + message: 'Your session is not authorized.', + }); + } + next(); + }; } - next(); } -module.exports = rejectIfNotAuthorizedMiddleware; +module.exports = RejectIfNotAuthorizedMiddleware;