update branch

Merge branch 'plugin/settings-manager-dev' of github.com:soupette/strapi into plugin/settings-manager-dev
This commit is contained in:
cyril lopez 2017-07-12 18:01:26 +02:00
commit aa924aec70
4 changed files with 119 additions and 66 deletions

View File

@ -1,4 +1,45 @@
{ {
"menu.section.global-settings": "Global settings", "menu.section.global-settings": "Global settings",
"menu.section.environments": "Environments" "menu.item.general": "General",
"menu.item.languages": "Languages",
"menu.item.advanced": "Advanced",
"menu.section.environments": "Environments",
"menu.item.databases": "Databases",
"menu.item.security": "Security",
"menu.item.server": "Server",
"form.general": "General",
"form.general.description": "Configure your general settings.",
"form.general.name": "Name",
"form.general.description": "Description",
"form.general.version": "Version",
"form.security": "Security",
"form.security.description": "Configure your security settings.",
"form.security.session": "Session",
"form.security.session.key": "Secret key",
"form.security.session.maxAge": "Maximum age",
"form.security.xframe": "Xframe",
"form.security.xframe.deny": "DENY",
"form.security.xframe.sameorigin": "SAMEORIGIN",
"form.security.xframe.allow-from": "ALLOW-FROM",
"form.security.xssProtection": "xss Protection",
"form.security.cors": "Cors",
"form.security.cors.origin": "Origin",
"form.server": "Server",
"form.server.description": "Configure your server settings.",
"form.server.host": "Host",
"form.server.port": "Port",
"request.error.config": "Config file doesn't exist.",
"request.error.environment.required": "Environment is required.",
"request.error.environment.required": "Environment is unknow."
} }

View File

@ -1 +1,45 @@
{} {
"menu.section.global-settings": "Configuration général",
"menu.item.general": "Général",
"menu.item.languages": "Langues",
"menu.item.advanced": "Avancé",
"menu.section.environments": "Environnements",
"menu.item.databases": "Base de donnée",
"menu.item.security": "Sécurité",
"menu.item.server": "Serveur",
"form.general": "Général",
"form.general.description": "Modification des configurations général.",
"form.general.name": "Nom",
"form.general.description": "Description",
"form.general.version": "Version",
"form.security": "Sécurité",
"form.security.description": "Modification des configurations de sécurité.",
"form.security.session": "Session",
"form.security.session.key": "Clé secrète",
"form.security.session.maxAge": "Durée de vie ",
"form.security.xframe": "Xframe",
"form.security.xframe.deny": "DENY",
"form.security.xframe.sameorigin": "SAMEORIGIN",
"form.security.xframe.allow-from": "ALLOW-FROM",
"form.security.xssProtection": "Protection xss",
"form.security.cors": "Cors",
"form.security.cors.origin": "Origin",
"form.server": "Serveur",
"form.server.description": "Modification des configurations du serveur",
"form.server.host": "Host",
"form.server.port": "Port",
"request.error.config": "Le fichier de configuration n'éxiste pas.",
"request.error.environment.required": "L'environnement est obligatoire.",
"request.error.environment.required": "L'environnement est inconnu."
}

View File

@ -17,11 +17,12 @@ module.exports = {
const Service = strapi.plugins['settings-manager'].services.settingsmanager; const Service = strapi.plugins['settings-manager'].services.settingsmanager;
const { slug, env } = ctx.params; const { slug, env } = ctx.params;
if (env && _.isEmpty(_.find(Service.getEnvironments(), { name: env }))) return ctx.badData('request.error.environment'); if (env && _.isEmpty(_.find(Service.getEnvironments(), { name: env }))) return ctx.badData('request.error.environment.unknow');
const model = env ? Service[slug](env) : Service[slug]; const model = env ? Service[slug](env) : Service[slug];
if (_.isUndefined(model)) return ctx.badData('request.error.config'); if (_.isUndefined(model)) return ctx.badData('request.error.config');
if (_.isFunction(model)) return ctx.badData('request.error.environment.required');
ctx.send(model); ctx.send(model);
}, },
@ -31,11 +32,12 @@ module.exports = {
const { slug, env } = ctx.params; const { slug, env } = ctx.params;
let params = ctx.request.body; let params = ctx.request.body;
if (env && _.isEmpty(_.find(Service.getEnvironments(), { name: env }))) return ctx.badData('request.error.environment'); if (env && _.isEmpty(_.find(Service.getEnvironments(), { name: env }))) return ctx.badData('request.error.environment.unknow');
const model = env ? Service[slug](env) : Service[slug]; const model = env ? Service[slug](env) : Service[slug];
if (_.isUndefined(config)) return ctx.badData('request.error.config'); if (_.isUndefined(model)) return ctx.badData('request.error.config');
if (_.isFunction(model)) return ctx.badData('request.error.environment.required');
const items = Service.getItems(model); const items = Service.getItems(model);

View File

@ -20,8 +20,8 @@ module.exports = {
icon: 'language' icon: 'language'
}, },
{ {
slug: 'advenced', slug: 'advanced',
name: 'menu.item.advenced', name: 'menu.item.advanced',
icon: 'cogs' icon: 'cogs'
} }
] ]
@ -51,7 +51,7 @@ module.exports = {
general: { general: {
name: 'form.general', name: 'form.general',
description: 'form.general.desc', description: 'form.general.description',
sections: [ sections: [
{ {
name: '', name: '',
@ -60,7 +60,7 @@ module.exports = {
name: 'form.general.name', name: 'form.general.name',
target: 'package.name', target: 'package.name',
type: 'string', type: 'string',
value: strapi.config.name, value: _.get(strapi.config, 'name', null),
validations : { validations : {
maxLength: 255, maxLength: 255,
required: true required: true
@ -70,7 +70,7 @@ module.exports = {
name: 'form.general.description', name: 'form.general.description',
target: 'package.description', target: 'package.description',
type: 'string', type: 'string',
value: strapi.config.description, value: _.get(strapi.config, 'description', null),
validations : { validations : {
maxLength: 255, maxLength: 255,
required: true required: true
@ -80,9 +80,9 @@ module.exports = {
name: 'form.general.version', name: 'form.general.version',
target: 'package.version', target: 'package.version',
type: 'string', type: 'string',
value: strapi.config.version, value: _.get(strapi.config, 'version', null),
validations : { validations : {
maxLength: 255, regex: '^(\\d+\\.)?(\\d+\\.)?(\\*|\\d+)$',
required: true required: true
} }
} }
@ -94,7 +94,7 @@ module.exports = {
security: env => { security: env => {
return { return {
name: 'form.security', name: 'form.security',
description: 'form.security.desc', description: 'form.security.description',
sections: [ sections: [
{ {
name: 'form.security.session', name: 'form.security.session',
@ -103,13 +103,16 @@ module.exports = {
name: 'form.security.session.key', name: 'form.security.session.key',
target: 'security.session.key', target: 'security.session.key',
type: 'string', type: 'string',
value: strapi.config.environments[env].security.session.key value: _.get(strapi.config, `environments.${env}.security.session.key`, null),
validations: {
required: true
}
}, },
{ {
name: 'form.security.session.maxAge', name: 'form.security.session.maxAge',
target: 'security.session.maxAge', target: 'security.session.maxAge',
type: 'number', type: 'number',
value: strapi.config.environments[env].security.session.maxAge value: _.get(strapi.config, `environments.${env}.security.session.maxAge`, null)
} }
] ]
}, },
@ -120,18 +123,18 @@ module.exports = {
name: 'form.security.xframe', name: 'form.security.xframe',
target: 'security.xframe', target: 'security.xframe',
type: 'enum', type: 'enum',
value: strapi.config.environments[env].security.xframe, value: _.get(strapi.config, `environments.${env}.security.xframe`, null),
items: [ items: [
{ {
name: 'server.xframe.deny', name: 'form.security.xframe.deny',
value: 'DENY', value: 'DENY',
}, },
{ {
name: 'server.xframe.sameorigin', name: 'form.security.xframe.sameorigin',
value: 'SAMEORIGIN', value: 'SAMEORIGIN',
}, },
{ {
name: 'server.xframe.allow-from', name: 'form.security.xframe.allow-from',
value: 'ALLOW-FROM', value: 'ALLOW-FROM',
}, },
] ]
@ -140,7 +143,7 @@ module.exports = {
name: 'form.security.xssProtection', name: 'form.security.xssProtection',
target: 'security.xssProtection', target: 'security.xssProtection',
type: 'boolean', type: 'boolean',
value: strapi.config.environments[env].security.xssProtection value: _.get(strapi.config, `environments.${env}.security.xssProtection`, null)
} }
] ]
}, },
@ -151,7 +154,7 @@ module.exports = {
name: 'form.security.cors.origin', name: 'form.security.cors.origin',
target: 'security.cors.origin', target: 'security.cors.origin',
type: 'string', type: 'string',
value: strapi.config.environments[env].security.cors.origin, value: _.get(strapi.config, `environments.${env}.security.cors.origin`, null)
} }
] ]
} }
@ -162,7 +165,7 @@ module.exports = {
server: env => { server: env => {
return { return {
name: 'form.server', name: 'form.server',
description: 'form.server.desc', description: 'form.server.description',
sections: [ sections: [
{ {
name: '', name: '',
@ -171,55 +174,13 @@ module.exports = {
name: 'form.server.host', name: 'form.server.host',
target: 'server.host', target: 'server.host',
type: 'string', type: 'string',
value: strapi.config.environments[env].server.host value: _.get(strapi.config, `environments.${env}.server.host`, null)
}, },
{ {
name: 'form.server.port', name: 'form.server.port',
target: 'server.port', target: 'server.port',
type: 'number', type: 'number',
value: strapi.config.environments[env].server.port value: _.get(strapi.config, `environments.${env}.server.port`, null)
}
]
},
{
name: 'form.server.parser',
items: [
{
name: 'form.server.parser.xframe',
target: 'server.xframe',
type: 'enum',
value: strapi.config.environments[env].server.xframe,
items: [
{
name: 'server.xframe.deny',
value: 'DENY',
},
{
name: 'server.xframe.sameorigin',
value: 'SAMEORIGIN',
},
{
name: 'server.xframe.allow-from',
value: 'ALLOW-FROM',
},
]
},
{
name: 'form.server.xssProtection',
target: 'server.xssProtection',
type: 'boolean',
value: strapi.config.environments[env].server.xssProtection
}
]
},
{
name: 'form.server.cors',
items: [
{
name: 'form.server.cors.origin',
target: 'server.cors.origin',
type: 'string',
value: strapi.config.environments[env].server.cors.origin
} }
] ]
} }
@ -278,6 +239,11 @@ module.exports = {
message: 'form.error.validation.required' message: 'form.error.validation.required'
}); });
if (key === 'regex' && !new RegExp(value).test(input)) errors.push({
target: item.target,
message: 'form.error.validation.regex'
});
if (key === 'max' && parseInt(input) > value) errors.push({ if (key === 'max' && parseInt(input) > value) errors.push({
target: item.target, target: item.target,
message: 'form.error.validation.max' message: 'form.error.validation.max'