UNPKG

arrow-admin

Version:
52 lines (46 loc) 1.46 kB
// jscs:disable jsDoc var _ = require('lodash'), util = require('../util'), AppC = require('appc-platform-sdk'); function isAuthenticated(config, authCallback, user, org, callback) { if (authCallback) { // if in production and not enabled, return false if (config.env !== 'development' && !config.enableAdminInProduction) { return callback(true); } authCallback(user, org, callback); } else { callback(true); } } function configure(arrow, app, config, prefix, authCallback) { var CONFIG = {}; CONFIG.env = config && config.env; CONFIG.devmode = config && config.env === 'development'; CONFIG.prefix = prefix; CONFIG.dashboard = AppC.baseurl; CONFIG.enableDataEditor = config && config.enableDataEditor; app.get(prefix + '/config.js', function (req, resp, next) { var user = req.query.username, org = +req.query.org_id; if (!user || !org) { // should always be passed, return a 500 return next(new Error('invalid parameters passed')); } isAuthenticated(config, authCallback, user, org, function (err) { try { CONFIG.authenticated = !err; var content = JSON.stringify(CONFIG, null, 2), result = 'var CONFIG = ' + content + ';\n' + 'window.ConfigLoaded && window.ConfigLoaded(CONFIG);'; util.javascript(resp, result); } catch (E) { arrow.logger.error('Error handling admin configure', E); arrow.logger.trace(E.stack); next(E); } }); }); } exports.configure = configure;