@strapi/utils
Advanced tools
Comparing version 4.0.0-next.8 to 4.0.0-next.9
@@ -7,11 +7,6 @@ 'use strict'; | ||
const { buildQuery, hasDeepFilters } = require('./build-query'); | ||
const { | ||
convertRestQueryParams, | ||
VALID_REST_OPERATORS, | ||
QUERY_OPERATORS, | ||
} = require('./convert-rest-query-params'); | ||
const { VALID_REST_OPERATORS, QUERY_OPERATORS } = require('./convert-query-params'); | ||
const parseMultipartData = require('./parse-multipart'); | ||
const sanitizeEntity = require('./sanitize-entity'); | ||
const parseType = require('./parse-type'); | ||
const finder = require('./finder'); | ||
const policy = require('./policy'); | ||
@@ -44,6 +39,4 @@ const templateConfiguration = require('./template-configuration'); | ||
formatYupErrors, | ||
finder, | ||
policy, | ||
templateConfiguration, | ||
convertRestQueryParams, | ||
VALID_REST_OPERATORS, | ||
@@ -50,0 +43,0 @@ QUERY_OPERATORS, |
@@ -6,2 +6,6 @@ 'use strict'; | ||
module.exports = ctx => { | ||
if (!ctx.is('multipart')) { | ||
return { data: ctx.request.body, files: {} }; | ||
} | ||
const { body = {}, files = {} } = ctx.request; | ||
@@ -8,0 +12,0 @@ |
@@ -8,19 +8,10 @@ /** | ||
const GLOBAL_PREFIX = 'global::'; | ||
const PLUGIN_PREFIX = 'plugin::'; | ||
const ADMIN_PREFIX = 'admin::'; | ||
const APPLICATION_PREFIX = 'api::'; | ||
const API_PREFIX = 'api::'; | ||
const getPolicyIn = (container, policy) => { | ||
return ( | ||
_.get(container, ['config', 'policies', policy]) || | ||
_.get(container, ['config', 'policies', _.toLower(policy)]) | ||
); | ||
}; | ||
const policyExistsIn = (container, policy) => !_.isUndefined(getPolicyIn(container, policy)); | ||
const createPolicy = (policyName, args) => ({ policyName, args }); | ||
const resolveHandler = policy => (_.isFunction(policy) ? policy : policy.handler); | ||
const resolveHandler = policy => { | ||
return _.has('handler', policy) ? policy.handler : policy; | ||
}; | ||
@@ -37,28 +28,17 @@ const parsePolicy = policy => { | ||
const resolvePolicy = policyName => { | ||
const resolver = policyResolvers.find(resolver => resolver.exists(policyName)); | ||
const policy = strapi.policy(policyName); | ||
return resolver ? resolveHandler(resolver.get)(policyName) : undefined; | ||
return resolveHandler(policy); | ||
}; | ||
const searchLocalPolicy = (policy, plugin, apiName) => { | ||
let [absoluteApiName, policyName] = policy.split('.'); | ||
let absoluteApi = _.get(strapi.api, absoluteApiName); | ||
const resolver = policyResolvers.find(({ name }) => name === 'plugin'); | ||
if (policyExistsIn(absoluteApi, policyName)) { | ||
return resolveHandler(getPolicyIn(absoluteApi, policyName)); | ||
const searchLocalPolicy = (policyName, { pluginName, apiName }) => { | ||
if (pluginName) { | ||
const policy = strapi.policy(`${PLUGIN_PREFIX}${pluginName}.${policyName}`); | ||
return resolveHandler(policy); | ||
} | ||
const pluginPolicy = `${PLUGIN_PREFIX}${plugin}.${policy}`; | ||
if (plugin && resolver.exists(pluginPolicy)) { | ||
return resolveHandler(resolver.get(pluginPolicy)); | ||
if (apiName) { | ||
const policy = strapi.policy(`${API_PREFIX}${apiName}.${policyName}`); | ||
return resolveHandler(policy); | ||
} | ||
const api = _.get(strapi.api, apiName); | ||
if (api && policyExistsIn(api, policy)) { | ||
return resolveHandler(getPolicyIn(api, policy)); | ||
} | ||
return undefined; | ||
}; | ||
@@ -88,57 +68,3 @@ | ||
const policyResolvers = [ | ||
{ | ||
name: 'api', | ||
is(policy) { | ||
return _.startsWith(policy, APPLICATION_PREFIX); | ||
}, | ||
exists(policy) { | ||
return this.is(policy) && !_.isUndefined(this.get(policy)); | ||
}, | ||
get: policy => { | ||
const [, policyWithoutPrefix] = policy.split('::'); | ||
const [api = '', policyName = ''] = policyWithoutPrefix.split('.'); | ||
// TODO: load policies into the registry & user strapi.policy(policy) | ||
return getPolicyIn(_.get(strapi, ['api', api]), policyName); | ||
}, | ||
}, | ||
{ | ||
name: 'admin', | ||
is(policy) { | ||
return _.startsWith(policy, ADMIN_PREFIX); | ||
}, | ||
exists(policy) { | ||
return this.is(policy) && !_.isUndefined(this.get(policy)); | ||
}, | ||
get(policy) { | ||
return strapi.policy(policy); | ||
}, | ||
}, | ||
{ | ||
name: 'plugin', | ||
is(policy) { | ||
return _.startsWith(policy, PLUGIN_PREFIX); | ||
}, | ||
exists(policy) { | ||
return this.is(policy) && !_.isUndefined(this.get(policy)); | ||
}, | ||
get(policy) { | ||
return strapi.policy(policy); | ||
}, | ||
}, | ||
{ | ||
name: 'global', | ||
is(policy) { | ||
return _.startsWith(policy, GLOBAL_PREFIX); | ||
}, | ||
exists(policy) { | ||
return this.is(policy) && !_.isUndefined(this.get(policy)); | ||
}, | ||
get(policy) { | ||
return strapi.policy(policy); | ||
}, | ||
}, | ||
]; | ||
const get = (policy, plugin, apiName) => { | ||
const get = (policy, { pluginName, apiName } = {}) => { | ||
if (typeof policy === 'function') { | ||
@@ -156,3 +82,3 @@ return policy; | ||
const localPolicy = searchLocalPolicy(policy, plugin, apiName); | ||
const localPolicy = searchLocalPolicy(policy, { pluginName, apiName }); | ||
@@ -159,0 +85,0 @@ if (localPolicy !== undefined) { |
{ | ||
"name": "@strapi/utils", | ||
"version": "4.0.0-next.8", | ||
"version": "4.0.0-next.9", | ||
"description": "Shared utilities for the Strapi packages", | ||
@@ -48,3 +48,3 @@ "homepage": "https://strapi.io", | ||
"license": "SEE LICENSE IN LICENSE", | ||
"gitHead": "e3452f6662a45a4ba96e96861e076e313b297666" | ||
"gitHead": "231263a3535658bab1e9492c6aaaed8692d62a53" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
47145
23
1390