UNPKG

openhim-core

Version:

The OpenHIM core application that provides logging and routing of http requests

64 lines (50 loc) 1.79 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.authoriseUser = authoriseUser; exports.koaMiddleware = koaMiddleware; var _statsdClient = require('statsd-client'); var _statsdClient2 = _interopRequireDefault(_statsdClient); var _os = require('os'); var _os2 = _interopRequireDefault(_os); var _channels = require('../model/channels'); var _transactions = require('../model/transactions'); var _config = require('../config'); var _util = require('util'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const statsdServer = _config.config.get('statsd'); const application = _config.config.get('application'); const domain = `${_os2.default.hostname()}.${application.name}.appMetrics`; const sdc = new _statsdClient2.default(statsdServer); function authoriseUser(ctx, done) { // Use the original transaction's channel to setup the authorised channel _transactions.TransactionModel.findOne({ _id: ctx.parentID }, (err, originalTransaction) => { if (err) { return done(err); } _channels.ChannelModel.findOne({ _id: originalTransaction.channelID }, (err, authorisedChannel) => { if (err) { return done(err); } ctx.authorisedChannel = authorisedChannel; return done(); }); }); } /* * Koa middleware for authentication by basic auth */ async function koaMiddleware(ctx, next) { let startTime; if (statsdServer.enabled) { startTime = new Date(); } const authoriseUser = (0, _util.promisify)(exports.authoriseUser); await authoriseUser(ctx); if (statsdServer.enabled) { sdc.timing(`${domain}.rerunBypassAuthorisationMiddleware`, startTime); } await next(); } //# sourceMappingURL=rerunBypassAuthorisation.js.map