More stuff

This commit is contained in:
Dobie Wollert
2015-11-25 02:29:23 -08:00
parent f5bc55b1f5
commit f9c9672818
8 changed files with 786 additions and 19 deletions

View File

@ -1,6 +1,43 @@
var jwt = require('jwt-simple');
var moment = require('moment-timezone');
var mongoose = require('mongoose');
exports.profile = function(req, res) {
res.json(req.user);
};
module.exports = function(config) {
function createJWT(user, uid) {
var payload = {
sub: uid,
oid: user.id,
iat: moment().unix(),
exp: moment().add(14, 'days').unix()
};
return jwt.encode(payload, config.auth.jwtSecret);
}
return {
profile: function(req, res) {
res.json(req.user);
},
impersonate: function(req, res) {
var uid = req.body.uid;
if (!uid) {
return res.json(400);
}
console.log(req.user.name.first + " " + req.user.name.last + " is requesting to impersonate user " + uid);
if (req.user.perms.indexOf('system.developer') === -1) {
console.log("Access to impersonate user denied");
return res.json(403);
} else {
console.log("User is a developer");
}
console.log("Access token issued to impersonate user.");
res.send({ token: createJWT(req.user, uid) });
}
}
}