update libflitter/flap & run migrations

This commit is contained in:
2019-08-16 09:58:21 -05:00
parent d25b54da88
commit 33aa97ee49
10 changed files with 68 additions and 55 deletions

View File

@@ -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

View File

@@ -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!")
/*

View File

@@ -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

View File

@@ -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')
}

View File

@@ -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')
}

View File

@@ -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

View File

@@ -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')
}