openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
59 lines (41 loc) • 1.37 kB
JavaScript
var Channel, Q, SDC, Transaction, application, auth, config, domain, logger, os, sdc, statsdServer;
auth = require('basic-auth');
Channel = require('../model/channels').Channel;
logger = require('winston');
Transaction = require('../model/transactions').Transaction;
Q = require('q');
config = require('../config/config');
statsdServer = config.get('statsd');
application = config.get('application');
SDC = require('statsd-client');
os = require('os');
domain = (os.hostname()) + "." + application.name + ".appMetrics";
sdc = new SDC(statsdServer);
exports.authoriseUser = function(ctx, done) {
return Transaction.findOne({
_id: ctx.parentID
}, function(err, originalTransaction) {
return Channel.findOne({
_id: originalTransaction.channelID
}, function(err, authorisedChannel) {
ctx.authorisedChannel = authorisedChannel;
return done();
});
});
};
/*
* Koa middleware for authentication by basic auth
*/
exports.koaMiddleware = function*(next) {
var authoriseUser, startTime;
if (statsdServer.enabled) {
startTime = new Date();
}
authoriseUser = Q.denodeify(exports.authoriseUser);
(yield authoriseUser(this));
if (statsdServer.enabled) {
sdc.timing(domain + ".rerunBypassAuthorisationMiddleware", startTime);
}
return (yield next);
};
//# sourceMappingURL=rerunBypassAuthorisation.js.map