diff --git a/src/app.js b/src/app.js index 9c970d07..668eab55 100644 --- a/src/app.js +++ b/src/app.js @@ -10,6 +10,7 @@ import expressRequestId from 'express-request-id'; import swaggerUi from 'swagger-ui-express'; import YAML from 'yamljs'; import performanceRequestLogger from './middlewares/performanceRequestLogger'; +import jwtDecodePatcher from './middlewares/jwtDecodePatcher'; import router from './routes'; import permissions from './permissions'; import models from './models'; @@ -69,6 +70,8 @@ const logger = coreLib.logger({ app.use(performanceRequestLogger(logger)); app.logger = logger; +app.use(jwtDecodePatcher(logger)); + // ======================= // CORS ================ // ======================= diff --git a/src/middlewares/jwtDecodePatcher.js b/src/middlewares/jwtDecodePatcher.js new file mode 100644 index 00000000..9531bb21 --- /dev/null +++ b/src/middlewares/jwtDecodePatcher.js @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2016 TopCoder Inc., All Rights Reserved. + */ +/** + * This is the middleware to check role. + * @author TCDEVELOPER + * @version 1.0 + */ +import _ from 'lodash'; + +module.exports = function patchAuthUser(logger) { + return function patch(req, res, next) { + if (req.authUser) { + if (!req.authUser.email) { + logger.debug(`Email not found for user with id ${req.authUser.userId}`); + req.authUser.email = _.find(req.authUser, (value, key) => (key.indexOf('email') !== -1)); + } + } + return next(); + }; +};