mirror of
https://github.com/strapi/strapi.git
synced 2025-11-18 11:10:35 +00:00
Update branch
Merge branch 'plugin/settings-manager-dev' of https://github.com/strapi/strapi into plugin/settings-manager-dev
This commit is contained in:
commit
701c4ac9ca
@ -40,6 +40,22 @@
|
|||||||
"policies": []
|
"policies": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"method": "GET",
|
||||||
|
"path": "/configurations/databases/:env",
|
||||||
|
"handler": "SettingsManager.databases",
|
||||||
|
"config": {
|
||||||
|
"policies": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"method": "GET",
|
||||||
|
"path": "/configurations/databases/:slug/:env",
|
||||||
|
"handler": "SettingsManager.database",
|
||||||
|
"config": {
|
||||||
|
"policies": []
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"method": "GET",
|
"method": "GET",
|
||||||
"path": "/configurations/:slug/:env?",
|
"path": "/configurations/:slug/:env?",
|
||||||
|
|||||||
@ -22,16 +22,38 @@ module.exports = {
|
|||||||
ctx.send({ languages: Service.getLanguages() });
|
ctx.send({ languages: Service.getLanguages() });
|
||||||
},
|
},
|
||||||
|
|
||||||
|
databases: async ctx => {
|
||||||
|
const Service = strapi.plugins['settings-manager'].services.settingsmanager;
|
||||||
|
const { env } = ctx.params;
|
||||||
|
|
||||||
|
if (env && _.isEmpty(_.find(Service.getEnvironments(), { name: env }))) return ctx.badData(null, [{ messages: [{ id: 'request.error.environment.unknow' }] }]);
|
||||||
|
|
||||||
|
ctx.send({ databases: Service.getDatabases(env) });
|
||||||
|
},
|
||||||
|
|
||||||
|
database: async ctx => {
|
||||||
|
const Service = strapi.plugins['settings-manager'].services.settingsmanager;
|
||||||
|
const { slug, env } = ctx.params;
|
||||||
|
|
||||||
|
if (env && _.isEmpty(_.find(Service.getEnvironments(), { name: env }))) return ctx.badData(null, [{ messages: [{ id: 'request.error.environment.unknow' }] }]);
|
||||||
|
|
||||||
|
const model = _.has(Service, slug) ? Service.database(slug, env) : undefined;
|
||||||
|
|
||||||
|
if (_.isUndefined(model)) return ctx.badData(null, [{ messages: [{ id: 'request.error.config' }] }]);
|
||||||
|
if (_.isFunction(model)) return ctx.badData(null, [{ messages: [{ id: 'request.error.environment.required' }] }]);
|
||||||
|
|
||||||
|
ctx.send(model);
|
||||||
|
},
|
||||||
|
|
||||||
get: async ctx => {
|
get: async ctx => {
|
||||||
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(null, [{ messages: [{ id: 'request.error.environment.unknow' }] }]);
|
if (env && _.isEmpty(_.find(Service.getEnvironments(), { name: env }))) return ctx.badData(null, [{ messages: [{ id: 'request.error.environment.unknow' }] }]);
|
||||||
|
|
||||||
const model = Service[slug](env);
|
const model = _.has(Service, slug) ? Service[slug](env) : undefined;
|
||||||
|
|
||||||
if (_.isUndefined(model)) return ctx.badData(null, [{ messages: [{ id: 'request.error.config' }] }]);
|
if (_.isUndefined(model)) return ctx.badData(null, [{ messages: [{ id: 'request.error.config' }] }]);
|
||||||
if (_.isFunction(model)) return ctx.badData(null, [{ messages: [{ id: 'request.error.environment.required' }] }]);
|
|
||||||
|
|
||||||
ctx.send(model);
|
ctx.send(model);
|
||||||
},
|
},
|
||||||
@ -43,10 +65,18 @@ module.exports = {
|
|||||||
|
|
||||||
if (env && _.isEmpty(_.find(Service.getEnvironments(), { name: env }))) return ctx.badData(null, [{ messages: [{ id: 'request.error.environment.unknow' }] }]);
|
if (env && _.isEmpty(_.find(Service.getEnvironments(), { name: env }))) return ctx.badData(null, [{ messages: [{ id: 'request.error.environment.unknow' }] }]);
|
||||||
|
|
||||||
const model = Service[slug](env);
|
let model;
|
||||||
|
if (slug === 'database') {
|
||||||
|
const name = params.database;
|
||||||
|
|
||||||
|
model = Service.database(name, env);
|
||||||
|
|
||||||
|
if (!_.find(Service.getDatabases(env), { name })) model = undefined;
|
||||||
|
|
||||||
|
delete params.database;
|
||||||
|
} else model = _.has(Service, slug) ? Service[slug](env) : undefined;
|
||||||
|
|
||||||
if (_.isUndefined(model)) return ctx.badData(null, [{ messages: [{ id: 'request.error.config' }] }]);
|
if (_.isUndefined(model)) return ctx.badData(null, [{ messages: [{ id: 'request.error.config' }] }]);
|
||||||
if (_.isFunction(model)) return ctx.badData(null, [{ messages: [{ id: 'request.error.environment.required' }] }]);
|
|
||||||
|
|
||||||
const items = Service.getItems(model);
|
const items = Service.getItems(model);
|
||||||
|
|
||||||
|
|||||||
@ -37,7 +37,7 @@
|
|||||||
"eslint-config-airbnb-base": "^9.0.0",
|
"eslint-config-airbnb-base": "^9.0.0",
|
||||||
"eslint-config-prettier": "^2.3.0",
|
"eslint-config-prettier": "^2.3.0",
|
||||||
"eslint-import-resolver-webpack": "^0.6.0",
|
"eslint-import-resolver-webpack": "^0.6.0",
|
||||||
"eslint-plugin-babel": "^4.1.1",
|
"eslint-plugin-babel": "^4.1.2",
|
||||||
"eslint-plugin-import": "^2.0.1",
|
"eslint-plugin-import": "^2.0.1",
|
||||||
"eslint-plugin-jsx-a11y": "^2.2.3",
|
"eslint-plugin-jsx-a11y": "^2.2.3",
|
||||||
"eslint-plugin-react": "^6.4.1",
|
"eslint-plugin-react": "^6.4.1",
|
||||||
|
|||||||
@ -170,7 +170,9 @@ module.exports = {
|
|||||||
name: 'form.security.item.xframe.allow-from',
|
name: 'form.security.item.xframe.allow-from',
|
||||||
value: 'ALLOW-FROM',
|
value: 'ALLOW-FROM',
|
||||||
items: [{
|
items: [{
|
||||||
|
name: '',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
|
value: '',
|
||||||
validations: {
|
validations: {
|
||||||
required: true
|
required: true
|
||||||
}
|
}
|
||||||
@ -253,6 +255,75 @@ module.exports = {
|
|||||||
]
|
]
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
database: (name, env) => ({
|
||||||
|
name: 'form.databases.name',
|
||||||
|
description: 'form.databases.description',
|
||||||
|
sections: [
|
||||||
|
{
|
||||||
|
name: '',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
name: 'form.databases.item.provider',
|
||||||
|
target: `databases.connections.${name}.connector`,
|
||||||
|
type: 'string',
|
||||||
|
value: _.get(strapi.config, `environments.${env}.databases.connections.${name}.connector`, null),
|
||||||
|
validations: {
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'form.databases.item.host',
|
||||||
|
target: `databases.connections.${name}.settings.host`,
|
||||||
|
type: 'string',
|
||||||
|
value: _.get(strapi.config, `environments.${env}.databases.connections.${name}.settings.host`, null),
|
||||||
|
validations: {
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'form.databases.item.username',
|
||||||
|
target: `databases.connections.${name}.settings.username`,
|
||||||
|
type: 'string',
|
||||||
|
value: _.get(strapi.config, `environments.${env}.databases.connections.${name}.settings.username`, null),
|
||||||
|
validations: {
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'form.databases.item.password',
|
||||||
|
target: `databases.connections.${name}.settings.password`,
|
||||||
|
type: 'string',
|
||||||
|
value: _.get(strapi.config, `environments.${env}.databases.connections.${name}.settings.password`, null),
|
||||||
|
validations: {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'form.databases.item.database',
|
||||||
|
target: `databases.connections.${name}.settings.database`,
|
||||||
|
type: 'string',
|
||||||
|
value: _.get(strapi.config, `environments.${env}.databases.connections.${name}.settings.database`, null),
|
||||||
|
validations: {
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
name: 'form.databases.item.default',
|
||||||
|
target: `databases.defaultConnection`,
|
||||||
|
type: 'string',
|
||||||
|
value: _.get(strapi.config, `environments.${env}.databases.defaultConnection`, null),
|
||||||
|
validations: {
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
|
||||||
getEnvironments: () => {
|
getEnvironments: () => {
|
||||||
return _.map(_.keys(strapi.config.environments), environment => {
|
return _.map(_.keys(strapi.config.environments), environment => {
|
||||||
return {
|
return {
|
||||||
@ -271,6 +342,22 @@ module.exports = {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getDatabases: env => {
|
||||||
|
const databases = [];
|
||||||
|
|
||||||
|
_.forEach(strapi.config.environments[env].databases.connections, (connection, name) => {
|
||||||
|
databases.push({
|
||||||
|
provider: connection.connector,
|
||||||
|
name,
|
||||||
|
host: connection.settings.host,
|
||||||
|
database: connection.settings.database,
|
||||||
|
active: (strapi.config.environments[env].databases.defaultConnection = name)
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
return databases;
|
||||||
|
},
|
||||||
|
|
||||||
getItems: model => _.flatten(_.map(model.sections, section => section.items)),
|
getItems: model => _.flatten(_.map(model.sections, section => section.items)),
|
||||||
|
|
||||||
cleanParams: (params, items) => {
|
cleanParams: (params, items) => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user