openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
64 lines (50 loc) • 1.79 kB
JavaScript
;
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