mirror of
https://github.com/strapi/strapi.git
synced 2025-11-02 10:55:37 +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": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"path": "/configurations/:slug/:env?",
|
||||
|
||||
@ -22,16 +22,38 @@ module.exports = {
|
||||
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 => {
|
||||
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 = 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 (_.isFunction(model)) return ctx.badData(null, [{ messages: [{ id: 'request.error.environment.required' }] }]);
|
||||
|
||||
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' }] }]);
|
||||
|
||||
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 (_.isFunction(model)) return ctx.badData(null, [{ messages: [{ id: 'request.error.environment.required' }] }]);
|
||||
|
||||
const items = Service.getItems(model);
|
||||
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
"eslint-config-airbnb-base": "^9.0.0",
|
||||
"eslint-config-prettier": "^2.3.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-jsx-a11y": "^2.2.3",
|
||||
"eslint-plugin-react": "^6.4.1",
|
||||
|
||||
@ -170,7 +170,9 @@ module.exports = {
|
||||
name: 'form.security.item.xframe.allow-from',
|
||||
value: 'ALLOW-FROM',
|
||||
items: [{
|
||||
name: '',
|
||||
type: 'string',
|
||||
value: '',
|
||||
validations: {
|
||||
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: () => {
|
||||
return _.map(_.keys(strapi.config.environments), environment => {
|
||||
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)),
|
||||
|
||||
cleanParams: (params, items) => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user