UNPKG

arrow-admin

Version:
50 lines (44 loc) 1.3 kB
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.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 +' ;'; util.javascript(resp, result); } catch (E) { arrow.logger.error("Error handling admin configure",E); arrow.logger.trace(E.stack); next(E); } }); }); } exports.configure = configure;