diff --git a/app/routing/middleware/Debug.middleware.js b/app/routing/middleware/Debug.middleware.js index b6dd986..1d4ee39 100644 --- a/app/routing/middleware/Debug.middleware.js +++ b/app/routing/middleware/Debug.middleware.js @@ -3,7 +3,8 @@ * ------------------------------------------------------------- * Put some description here! */ -class Debug { +const Middleware = require('libflitter/middleware/Middleware') +class Debug extends Middleware { /* * Run the middleware test. @@ -11,10 +12,10 @@ class Debug { * It should either call the next function in the stack, * or it should handle the response accordingly. */ - test(req, res, next, args = {}){ + test(req, res, next, args = {}) { console.log('DEBUGGING LAYER:') - console.log('Incoming destination: '+req.originalUrl) - console.log('Incoming method: '+req.method) + console.log('Incoming destination: ' + req.originalUrl) + console.log('Incoming method: ' + req.method) /* * Call the next function in the stack. @@ -23,4 +24,4 @@ class Debug { } } -module.exports = Debug +module.exports = Debug \ No newline at end of file diff --git a/app/routing/middleware/HomeLogger.middleware.js b/app/routing/middleware/HomeLogger.middleware.js index 68ff7ba..9d000d5 100644 --- a/app/routing/middleware/HomeLogger.middleware.js +++ b/app/routing/middleware/HomeLogger.middleware.js @@ -6,7 +6,8 @@ * the '/' route is accessed. It can be injected in routes globally using * the global mw() function. */ -class HomeLogger { +const Middleware = require('libflitter/middleware/Middleware') +class HomeLogger extends Middleware { /* * Run the middleware test. @@ -14,7 +15,7 @@ class HomeLogger { * It should either call the next function in the stack, * or it should handle the response accordingly. */ - test(req, res, next){ + test(req, res, next) { console.log("Home was accessed!") /* diff --git a/app/routing/middleware/auth/Permission.middleware.js b/app/routing/middleware/auth/Permission.middleware.js index a883fc3..6aee5fe 100644 --- a/app/routing/middleware/auth/Permission.middleware.js +++ b/app/routing/middleware/auth/Permission.middleware.js @@ -8,7 +8,8 @@ * * @class */ -class Permission { +const Middleware = require('libflitter/middleware/Middleware') +class Permission extends Middleware { /** * Run the middleware's check. If an authenticated session exists and the user has the specified permission, @@ -19,31 +20,33 @@ class Permission { * @param {Function} next - Express handler stack callback. This should be called if the middleware check passed to allow the request to continue. * @param {string} permission - Name of the permission to require */ - async test(req, res, next, permission){ - if ( req.session && req.session.auth && (req.session.auth.authenticated === true || req.session.auth.user) ){ - if ( req.session.auth.user.permissions && req.session.auth.user.permissions.includes(permission) ){ + async test(req, res, next, permission) { + if (req.session && req.session.auth && (req.session.auth.authenticated === true || req.session.auth.user)) { + if (req.session.auth.user.permissions && req.session.auth.user.permissions.includes(permission)) { next() - } - else if ( req.session.auth.user.role ){ + } else if (req.session.auth.user.role) { const Role = _flitter.model('auth:Role') - const role = await Role.findOne({name: req.session.auth.user.role}) + const role = await Role.findOne({ + name: req.session.auth.user.role + }) - if ( role.permissions.includes(permission) ){ + if (role.permissions.includes(permission)) { next() + } else { + return _flitter.error(res, 401, { + reason: 'Insufficient user permissions.' + }) } - else { - return _flitter.error(res, 401, {reason: 'Insufficient user permissions.'}) - } + } else { + return _flitter.error(res, 401, { + reason: 'Insufficient user permissions.' + }) } - else { - return _flitter.error(res, 401, {reason: 'Insufficient user permissions.'}) - } - } - else { + } else { req.session.destination = req.originalUrl return res.redirect('/auth/login') } } } -module.exports = Permission +module.exports = Permission \ No newline at end of file diff --git a/app/routing/middleware/auth/RequireAuth.middleware.js b/app/routing/middleware/auth/RequireAuth.middleware.js index 8014dbd..551c72a 100644 --- a/app/routing/middleware/auth/RequireAuth.middleware.js +++ b/app/routing/middleware/auth/RequireAuth.middleware.js @@ -8,7 +8,8 @@ * * @class */ -class RequireAuth { +const Middleware = require('libflitter/middleware/Middleware') +class RequireAuth extends Middleware { /** * Run the middleware's check. If an authenticated session exists, let the request continue. @@ -18,14 +19,13 @@ class RequireAuth { * @param {Express/Response} res - the corresponding Express response * @param {Function} next - Express handler stack callback. This should be called if the middleware check passed to allow the request to continue. */ - test(req, res, next){ - if ( req.session && req.session.auth && (req.session.auth.authenticated === true || req.session.auth.user) ){ + test(req, res, next) { + if (req.session && req.session.auth && (req.session.auth.authenticated === true || req.session.auth.user)) { /* * Call the next function in the stack. */ next() - } - else { + } else { req.session.destination = req.originalUrl return res.redirect('/auth/login') } diff --git a/app/routing/middleware/auth/RequireGuest.middleware.js b/app/routing/middleware/auth/RequireGuest.middleware.js index d1f8ebf..dc9e6cb 100644 --- a/app/routing/middleware/auth/RequireGuest.middleware.js +++ b/app/routing/middleware/auth/RequireGuest.middleware.js @@ -8,7 +8,8 @@ * * @class */ -class RequireGuest { +const Middleware = require('libflitter/middleware/Middleware') +class RequireGuest extends Middleware { /** * Run the middleware test. If an authenticated session exists, redirect the user to an error page. @@ -17,8 +18,8 @@ class RequireGuest { * @param {Express/Response} res - the corresponding Express response * @param {Function} next - The callback to continue the Express request handling stack. This is called if the middleware check passes. */ - test(req, res, next){ - if ( req.session && req.session.auth && (req.session.auth.authenticated === true || req.session.auth.user) ){ + test(req, res, next) { + if (req.session && req.session.auth && (req.session.auth.authenticated === true || req.session.auth.user)) { return _flitter.view(res, 'errors/requires_guest') } diff --git a/app/routing/middleware/auth/Role.middleware.js b/app/routing/middleware/auth/Role.middleware.js index d0b0328..e65aaf3 100644 --- a/app/routing/middleware/auth/Role.middleware.js +++ b/app/routing/middleware/auth/Role.middleware.js @@ -8,7 +8,8 @@ * * @class */ -class Role { +const Middleware = require('libflitter/middleware/Middleware') +class Role extends Middleware { /** * Run the middleware's check. If an authenticated session exists and the user has the specified role, @@ -19,20 +20,20 @@ class Role { * @param {Function} next - Express handler stack callback. This should be called if the middleware check passed to allow the request to continue. * @param {string} role - Name of the role to require */ - test(req, res, next, role){ - if ( req.session && req.session.auth && (req.session.auth.authenticated === true || req.session.auth.user) ){ - if ( req.session.auth.user.role && req.session.auth.user.role === role ){ + test(req, res, next, role) { + if (req.session && req.session.auth && (req.session.auth.authenticated === true || req.session.auth.user)) { + if (req.session.auth.user.role && req.session.auth.user.role === role) { next() + } else { + return _flitter.error(res, 401, { + reason: 'Insufficient user permissions.' + }) } - else { - return _flitter.error(res, 401, {reason: 'Insufficient user permissions.'}) - } - } - else { + } else { req.session.destination = req.originalUrl return res.redirect('/auth/login') } } } -module.exports = Role +module.exports = Role \ No newline at end of file diff --git a/app/routing/middleware/v1/Invite.middleware.js b/app/routing/middleware/v1/Invite.middleware.js index 5d2f110..2801eff 100644 --- a/app/routing/middleware/v1/Invite.middleware.js +++ b/app/routing/middleware/v1/Invite.middleware.js @@ -3,7 +3,8 @@ * ------------------------------------------------------------- * Put some description here! */ -class Invite { +const Middleware = require('libflitter/middleware/Middleware') +class Invite extends Middleware { /* * Run the middleware test. @@ -11,8 +12,8 @@ class Invite { * It should either call the next function in the stack, * or it should handle the response accordingly. */ - test(req, res, next, args = {}){ - if ( req.session.invite && !req.originalUrl.includes('/dash/v1/invitation/accept') ){ + test(req, res, next, args = {}) { + if (req.session.invite && !req.originalUrl.includes('/dash/v1/invitation/accept')) { return res.redirect('/dash/v1/invitation/accept') } diff --git a/flaps.json b/flaps.json index 8d60213..6f95b25 100644 --- a/flaps.json +++ b/flaps.json @@ -23,5 +23,10 @@ "id": 1565741502, "name": "convert_to_new_model_schema_definitions", "migratedOn": "2019-08-15T14:58:30.109Z" + }, + { + "id": 1565925593, + "name": "make_existing_middleware_extend_base_class", + "migratedOn": "2019-08-16T14:49:39.934Z" } ] diff --git a/package.json b/package.json index 48cd0f6..f72ee9b 100644 --- a/package.json +++ b/package.json @@ -18,11 +18,11 @@ "dependencies": { "flitter-auth": "^0.4.0", "flitter-cli": "^0.10.0", - "flitter-flap": "^0.3.1", + "flitter-flap": "^0.4.0", "flitter-forms": "^0.7.2", "flitter-upload": "^0.7.6", "js-beautify": "^1.10.2", - "libflitter": "^0.28.0", + "libflitter": "^0.29.3", "stringify-object": "^3.3.0" } } diff --git a/yarn.lock b/yarn.lock index 0454da7..aeeaa3e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -869,10 +869,10 @@ flitter-cli@^0.10.0: mkdirp "^0.5.1" nesh "^1.7.0" -flitter-flap@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/flitter-flap/-/flitter-flap-0.3.1.tgz#12dca0f43a6bfefd89b9e461b1eb1f1e7db18cd9" - integrity sha512-I22gvdK3cKCnQZGVXwtbgtWTkCakhZGs46K5g+UcoKYurHhjo+9+rqsPGZbYzIcFIhwPJTyv3Ve5aZprDz22WQ== +flitter-flap@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/flitter-flap/-/flitter-flap-0.4.0.tgz#ab1cdfc5b9ffe0b5b9fe2e3a8bdc87e9aac82c0e" + integrity sha512-1pfGAckDJ7RZIK6qheAz2dwA4PV/03Z7rPhhVuDqZbuemtiozLgDLPQXzGwSLQESWNuG6CBg3KMEd0CPppB1/Q== dependencies: del "^4.1.0" js-beautify "^1.10.2" @@ -1274,10 +1274,10 @@ leven@^1.0.2: resolved "https://registry.yarnpkg.com/leven/-/leven-1.0.2.tgz#9144b6eebca5f1d0680169f1a6770dcea60b75c3" integrity sha1-kUS27ryl8dBoAWnxpncNzqYLdcM= -libflitter@^0.28.0: - version "0.28.0" - resolved "https://registry.yarnpkg.com/libflitter/-/libflitter-0.28.0.tgz#c132dfb74e3a3e6148e924ce5ab9fc6094a6625c" - integrity sha512-s7m0odIm96QcuycJ4GUyu4Ub6zooCtXnIRjXccAgkKMMkz1I84qT0+DO6tRiSBPlnxA9lXpDjrAzyY0Z5OpQmw== +libflitter@^0.29.3: + version "0.29.3" + resolved "https://registry.yarnpkg.com/libflitter/-/libflitter-0.29.3.tgz#b3daaac4405599b51f943fd1331a576db6bb9a2d" + integrity sha512-3W6Mack+U5s7YAN6ItIClI+Q9gAqeOlioHleU1LyilFAwmZxth098mRd+pV0ZLGomtzIeyxJcmP9bYg7RC62pg== dependencies: busboy-body-parser "^0.3.2" connect-mongodb-session "^2.2.0"