openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
56 lines (43 loc) • 1.5 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 _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) {
return _channels.ChannelModel.findOne({ _id: ctx.request.header['channel-id'] }, (err, channel) => {
if (err) {
return done(err);
}
ctx.authorisedChannel = channel;
return done(null, channel);
});
}
/*
* Koa middleware for bypassing authorisation for polling
*/
async function koaMiddleware(ctx, next) {
let startTime;
if (statsdServer.enabled) {
startTime = new Date();
}
const _authoriseUser = (0, _util.promisify)(authoriseUser);
await _authoriseUser(ctx);
if (statsdServer.enabled) {
sdc.timing(`${domain}.pollingBypassAuthorisationMiddleware`, startTime);
}
await next();
}
//# sourceMappingURL=pollingBypassAuthorisation.js.map