From b58d11d18a078bc64db72dbe760676d15b7f9320 Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Fri, 29 Sep 2017 17:06:01 +0200 Subject: [PATCH] Fix retours PR --- packages/strapi-knex/package.json | 2 +- packages/strapi/lib/core/configurations.js | 14 +++++--------- packages/strapi/lib/middlewares/cors/index.js | 2 +- packages/strapi/lib/middlewares/csp/index.js | 2 +- packages/strapi/lib/middlewares/csrf/index.js | 2 +- packages/strapi/lib/middlewares/hsts/index.js | 2 +- packages/strapi/lib/middlewares/index.js | 14 ++++++++------ packages/strapi/lib/middlewares/p3p/index.js | 2 +- packages/strapi/lib/middlewares/xframe/index.js | 2 +- packages/strapi/lib/middlewares/xss/index.js | 2 +- 10 files changed, 21 insertions(+), 23 deletions(-) diff --git a/packages/strapi-knex/package.json b/packages/strapi-knex/package.json index 6502a13098..8967a74598 100755 --- a/packages/strapi-knex/package.json +++ b/packages/strapi-knex/package.json @@ -46,4 +46,4 @@ "npm": ">= 5.0.0" }, "license": "MIT" -} +} \ No newline at end of file diff --git a/packages/strapi/lib/core/configurations.js b/packages/strapi/lib/core/configurations.js index cc40ce025b..5df95293c7 100755 --- a/packages/strapi/lib/core/configurations.js +++ b/packages/strapi/lib/core/configurations.js @@ -277,17 +277,13 @@ const enableHookNestedDependencies = function (name, flattenHooksConfig) { if (isEmpty(get(flattenHooksConfig, name, true))) { // Check if database connector is used - let isUsed = false; - forEach(get(strapi, 'api', {}), api => { - if (!api.models) return; - - forEach(api.models, model => { - if (get(strapi.connection, model.connection, {}).connector === name) isUsed = true; - }); - }); + const modelUsed = Object.keys(this.api || {}) + .filter(x => isObject(this.api[x].models)) // Filter API with models + .map(x => this.api[x].models) // Keep models + .filter(model => get(this.connection, model.connection, {}).connector === name) || 0; // Filter model with the right connector flattenHooksConfig[name] = { - enabled: isUsed + enabled: modelUsed.length > 0 // Will return false if there is no model, else true. }; // Enabled dependencies. diff --git a/packages/strapi/lib/middlewares/cors/index.js b/packages/strapi/lib/middlewares/cors/index.js index a5f69c7274..6ac47815d9 100755 --- a/packages/strapi/lib/middlewares/cors/index.js +++ b/packages/strapi/lib/middlewares/cors/index.js @@ -47,7 +47,7 @@ module.exports = strapi => { initialize: function(cb) { strapi.app.use( async (ctx, next) => { - if (ctx.admin) return next(); + if (ctx.request.admin) return next(); await strapi.koaMiddlewares.kcors({ origin: strapi.config.middleware.settings.cors.origin, diff --git a/packages/strapi/lib/middlewares/csp/index.js b/packages/strapi/lib/middlewares/csp/index.js index 38bff577fd..a53eded922 100755 --- a/packages/strapi/lib/middlewares/csp/index.js +++ b/packages/strapi/lib/middlewares/csp/index.js @@ -27,7 +27,7 @@ module.exports = strapi => { initialize: function(cb) { strapi.app.use( async (ctx, next) => { - if (ctx.admin) return next(); + if (ctx.request.admin) return next(); strapi.koaMiddlewares.convert( strapi.koaMiddlewares.lusca.csp(strapi.config.middleware.settings.csp) diff --git a/packages/strapi/lib/middlewares/csrf/index.js b/packages/strapi/lib/middlewares/csrf/index.js index 187cdd8a5d..22200b1feb 100755 --- a/packages/strapi/lib/middlewares/csrf/index.js +++ b/packages/strapi/lib/middlewares/csrf/index.js @@ -29,7 +29,7 @@ module.exports = strapi => { initialize: function(cb) { strapi.app.use( async (ctx, next) => { - if (ctx.admin) return next(); + if (ctx.request.admin) return next(); await strapi.koaMiddlewares.convert( strapi.koaMiddlewares.lusca.csrf({ diff --git a/packages/strapi/lib/middlewares/hsts/index.js b/packages/strapi/lib/middlewares/hsts/index.js index 5ae01b9bad..ba7cfaf933 100755 --- a/packages/strapi/lib/middlewares/hsts/index.js +++ b/packages/strapi/lib/middlewares/hsts/index.js @@ -29,7 +29,7 @@ module.exports = strapi => { initialize: function(cb) { strapi.app.use( async (ctx, next) => { - if (ctx.admin) return next(); + if (ctx.request.admin) return next(); strapi.koaMiddlewares.convert( strapi.koaMiddlewares.lusca.hsts({ diff --git a/packages/strapi/lib/middlewares/index.js b/packages/strapi/lib/middlewares/index.js index 4bb33f349a..036bb3404b 100755 --- a/packages/strapi/lib/middlewares/index.js +++ b/packages/strapi/lib/middlewares/index.js @@ -3,17 +3,19 @@ const glob = require('glob'); const path = require('path'); const { parallel } = require('async'); -const { after, includes, indexOf, drop, dropRight, uniq, defaultsDeep, get, set, isEmpty, isUndefined, union, keys } = require('lodash'); +const { after, includes, indexOf, drop, dropRight, uniq, defaultsDeep, get, set, isEmpty, isUndefined, union } = require('lodash'); module.exports = function() { // Set if is admin destination for middleware application. // TODO: Use dynamic config for admin url. strapi.app.use(async (ctx, next) => { - const accepted = keys(strapi.plugins).map(url => `^\/${url}`); - accepted.push('^\/admin'); - const isMatch = accepted.some(rx => new RegExp(rx).test(ctx.request.url)); - set(ctx, 'admin', isMatch); - return next(); + const accepted = Object.keys(strapi.plugins).map(url => `^\/${url}`).concat(['^\/admin']); + + strapi.app.use(async (ctx, next) => { + ctx.request.admin = accepted.some(rx => new RegExp(rx).test(ctx.request.url)); + + return next(); + }); }); // Method to initialize middlewares and emit an event. diff --git a/packages/strapi/lib/middlewares/p3p/index.js b/packages/strapi/lib/middlewares/p3p/index.js index b59df5bf72..44a8f4a285 100755 --- a/packages/strapi/lib/middlewares/p3p/index.js +++ b/packages/strapi/lib/middlewares/p3p/index.js @@ -28,7 +28,7 @@ module.exports = strapi => { initialize: function(cb) { strapi.app.use( async (ctx, next) => { - if (ctx.admin) return next(); + if (ctx.request.admin) return next(); strapi.koaMiddlewares.convert( strapi.koaMiddlewares.lusca.p3p({ diff --git a/packages/strapi/lib/middlewares/xframe/index.js b/packages/strapi/lib/middlewares/xframe/index.js index 2246179caf..1baafd52b6 100755 --- a/packages/strapi/lib/middlewares/xframe/index.js +++ b/packages/strapi/lib/middlewares/xframe/index.js @@ -28,7 +28,7 @@ module.exports = strapi => { initialize: function(cb) { strapi.app.use( async (ctx, next) => { - if (ctx.admin) return next(); + if (ctx.request.admin) return next(); strapi.koaMiddlewares.convert( strapi.koaMiddlewares.lusca.xframe({ diff --git a/packages/strapi/lib/middlewares/xss/index.js b/packages/strapi/lib/middlewares/xss/index.js index f22ee4b756..3a9a1c5b9d 100755 --- a/packages/strapi/lib/middlewares/xss/index.js +++ b/packages/strapi/lib/middlewares/xss/index.js @@ -28,7 +28,7 @@ module.exports = strapi => { initialize: function(cb) { strapi.app.use( async (ctx, next) => { - if (ctx.admin) return next(); + if (ctx.request.admin) return next(); strapi.koaMiddlewares.convert( strapi.koaMiddlewares.lusca.xssProtection({