0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-03 23:00:14 -05:00
ghost/core/server/api/configuration.js
Katharina Irrgang 7b4c3fc085 Removed defunct Ghost OAuth code (#9014)
closes #8342

- no need to add a migration, because when we'released 1.0, OAuth was never an option
- it was disabled in April, 1.0-beta was released in June
- remove all remote authentication code
2017-09-18 13:01:58 +01:00

93 lines
2.7 KiB
JavaScript

// # Configuration API
// RESTful API for browsing the configuration
var Promise = require('bluebird'),
_ = require('lodash'),
apiUtils = require('../utils'),
models = require('../models'),
config = require('../config'),
settingsCache = require('../settings/cache'),
ghostVersion = require('../utils/ghost-version'),
configuration;
function fetchAvailableTimezones() {
var timezones = require('../data/timezones.json');
return timezones;
}
function fetchPrivateConfig() {
var unsplashConfig = config.get('unsplash') || {};
return {
unsplashAPI: unsplashConfig
};
}
function getAboutConfig() {
return {
version: ghostVersion.full,
environment: config.get('env'),
database: config.get('database').client,
mail: _.isObject(config.get('mail')) ? config.get('mail').transport : ''
};
}
function getBaseConfig() {
return {
useGravatar: !config.isPrivacyDisabled('useGravatar'),
publicAPI: config.get('publicAPI') === true,
blogUrl: apiUtils.url.urlFor('home', true),
blogTitle: settingsCache.get('title'),
routeKeywords: config.get('routeKeywords'),
clientExtensions: config.get('clientExtensions')
};
}
/**
* ## Configuration API Methods
*
* We need to load the client credentials dynamically.
*
* **See:** [API Methods](index.js.html#api%20methods)
*/
configuration = {
/**
* Always returns {configuration: []}
* Sometimes the array contains configuration items
* @param {Object} options
* @returns {Promise<Object>}
*/
read: function read(options) {
options = options || {};
if (!options.key) {
return models.Client.findOne({slug: 'ghost-admin'})
.then(function (ghostAdmin) {
var configuration = getBaseConfig();
configuration.clientId = ghostAdmin.get('slug');
configuration.clientSecret = ghostAdmin.get('secret');
return {configuration: [configuration]};
});
}
if (options.key === 'about') {
return Promise.resolve({configuration: [getAboutConfig()]});
}
// Timezone endpoint
if (options.key === 'timezones') {
return Promise.resolve({configuration: [fetchAvailableTimezones()]});
}
// Private configuration config for API keys used by the client
if (options.key === 'private') {
return Promise.resolve({configuration: [fetchPrivateConfig()]});
}
return Promise.resolve({configuration: []});
}
};
module.exports = configuration;