diff --git a/packages/core/admin/index.js b/packages/core/admin/index.js index a9e6f1b80f..30d04cde20 100644 --- a/packages/core/admin/index.js +++ b/packages/core/admin/index.js @@ -149,10 +149,6 @@ async function copyAdmin(dest) { await fs.ensureDir(path.resolve(dest, 'config')); await fs.copy(path.resolve(adminPath, 'admin'), path.resolve(dest, 'admin')); - await fs.copy( - path.resolve(adminPath, 'server', 'config', 'layout.js'), - path.resolve(dest, 'config', 'layout.js') - ); // Copy package.json await fs.copy(path.resolve(adminPath, 'package.json'), path.resolve(dest, 'package.json')); diff --git a/packages/core/admin/server/config/index.js b/packages/core/admin/server/config/index.js index 1e72b8b208..101859af66 100644 --- a/packages/core/admin/server/config/index.js +++ b/packages/core/admin/server/config/index.js @@ -1,6 +1,9 @@ 'use strict'; +const forgotPasswordTemplate = require('./email-templates/forgot-password'); + module.exports = { - layout: require('./layout'), - ...require('./settings'), + forgotPassword: { + emailTemplate: forgotPasswordTemplate, + }, }; diff --git a/packages/core/admin/server/config/layout.js b/packages/core/admin/server/config/layout.js deleted file mode 100644 index 4f8cfa808a..0000000000 --- a/packages/core/admin/server/config/layout.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -module.exports = { - administrator: { - actions: { - create: 'Admin.create', - update: 'Admin.update', - }, - }, -}; diff --git a/packages/core/content-manager/.gitignore b/packages/core/content-manager/.gitignore index 9b43c3f973..da1f965030 100644 --- a/packages/core/content-manager/.gitignore +++ b/packages/core/content-manager/.gitignore @@ -2,7 +2,6 @@ coverage node_modules stats.json -config/layout.json package-lock.json diff --git a/packages/core/content-manager/config/policies/routing.js b/packages/core/content-manager/config/policies/routing.js index 8298ef70bb..089d503e62 100644 --- a/packages/core/content-manager/config/policies/routing.js +++ b/packages/core/content-manager/config/policies/routing.js @@ -12,10 +12,19 @@ module.exports = async (ctx, next) => { } const target = ct.plugin === 'admin' ? strapi.admin : strapi.plugin(ct.plugin); + + const { route } = ctx.state; + + if (typeof route.handler !== 'string') { + return next(); + } + + const [, action] = route.handler.split('.'); + const configPath = ct.plugin === 'admin' - ? ['server.admin.layout', ct.modelName, 'actions', ctx.request.route.action] - : ['plugin', ct.plugin, 'layout', ct.modelName, 'actions', ctx.request.route.action]; + ? ['server.admin.layout', ct.modelName, 'actions', action] + : ['plugin', ct.plugin, 'layout', ct.modelName, 'actions', action]; const actionConfig = strapi.config.get(configPath); diff --git a/packages/core/strapi/lib/core/loaders/plugins/get-enabled-plugins.js b/packages/core/strapi/lib/core/loaders/plugins/get-enabled-plugins.js index 534e30db83..352e204da5 100644 --- a/packages/core/strapi/lib/core/loaders/plugins/get-enabled-plugins.js +++ b/packages/core/strapi/lib/core/loaders/plugins/get-enabled-plugins.js @@ -76,6 +76,7 @@ const getEnabledPlugins = async strapi => { const userPluginsConfig = existsSync(userPluginConfigPath) ? loadConfigFile(userPluginConfigPath) : {}; + _.forEach(userPluginsConfig, (declaration, pluginName) => { validatePluginName(pluginName); declaredPlugins[pluginName] = toDetailedDeclaration(declaration); @@ -86,6 +87,7 @@ const getEnabledPlugins = async strapi => { p => !declaredPluginsResolves.includes(p.pathToPlugin), installedPlugins ); + const enabledPlugins = pipe( defaultsDeep(declaredPlugins), defaultsDeep(installedPluginsNotAlreadyUsed), diff --git a/packages/plugins/users-permissions/.gitignore b/packages/plugins/users-permissions/.gitignore index 304c5bddad..697139034c 100644 --- a/packages/plugins/users-permissions/.gitignore +++ b/packages/plugins/users-permissions/.gitignore @@ -5,10 +5,9 @@ node_modules # writable files jwt.json -config/layout.json actions.json # Cruft .DS_Store npm-debug.log -.idea \ No newline at end of file +.idea