From 4c7c736ea0a4ebc4a06cdfa96694aaa9060ee5c6 Mon Sep 17 00:00:00 2001 From: Barry Low Date: Sun, 21 Oct 2018 15:27:50 -0700 Subject: [PATCH] Switch console.log to logger --- api/src/auth/authDirectives.js | 141 --------------------------------- api/src/email/sendgrid.js | 2 +- 2 files changed, 1 insertion(+), 142 deletions(-) delete mode 100644 api/src/auth/authDirectives.js diff --git a/api/src/auth/authDirectives.js b/api/src/auth/authDirectives.js deleted file mode 100644 index 31f762e2c..000000000 --- a/api/src/auth/authDirectives.js +++ /dev/null @@ -1,141 +0,0 @@ -const _get = require('lodash.get') -const { validateIdToken } = require('./validateIdToken') -import { logger } from './logger' - -const memberLocationOnContext = 'request.user' -const bearerAccessToken = 'request.headers.authorization' - -const ctxMember = ctx => _get(ctx, memberLocationOnContext) -const ctxToken = ctx => _get(ctx, bearerAccessToken) - -const createMember = async (ctx, idToken, info) => { - logger.info(`createMember: ${idToken}`) - const member = await ctx.db.mutation.upsertMember({ - where: { - authId: idToken.sub, - }, - create: { - authId: idToken.sub, - alias: idToken.nickname - }, - update: { - authId: idToken.sub, - alias: idToken.nickname - } - }, info) - return member -} - -const isLoggedIn = async ctx => { - logger.info(`isLoggedIn 0: ${JSON.stringify(ctx.request.headers)}`) - let member = ctxMember(ctx, memberLocationOnContext) - let token = ctxToken(ctx, bearerAccessToken) - let memberToken - logger.info(`isLoggedIn 1: ${JSON.stringify(member)}`) - logger.info(`isLoggedIn 2: ${token}`) - if (!member && token) { - let scheme, credentials - const tokenParts = token.split(' ') - if (tokenParts.length === 2) { - scheme = tokenParts[0] - credentials = tokenParts[1] - } - - if (/^Bearer$/i.test(scheme)) { - token = credentials - //verify token - try { - memberToken = await validateIdToken(token) - const authId = memberToken.sub - exists = await ctx.db.query.member({ where: { authId: authId } }) - if (!member && exists === null) { - member = await createMember(ctx, memberToken).then(res => { - return res - }) - - return member - } - return member - } catch (err) { - memberToken = false - } - } - } - if (!member) { - throw new Error(`Not logged in`) - } - return member -} - - -const isRequestingMemberAlsoOwner = ({ ctx, memberId, type, typeId }) => - ctx.db.exists[type]({ slug: typeId, owner: memberId }) -const isRequestingMember = ({ ctx, memberId }) => ctx.db.exists.Member({ authId: memberId }) - -const directiveResolvers = { - isAuthenticated: async (next, source, args, ctx) => { - let result = await isLoggedIn(ctx) - logger.info(`directive isAuthenticated: ${JSON.stringify(result)}`) - return next(result) - }, - hasRole: (next, source, { roles }, ctx) => { - const { role } = isLoggedIn(ctx) - logger.info(`directive hasRole: ${role}`) - if (roles.includes(role)) { - return next() - } - throw new Error(`Unauthorized, incorrect role`) - }, - isOwner: async (next, source, { type }, ctx) => { - logger.info(`directive isOwner 1: ${type}`) - logger.info(`directive isOwner 2: ${JSON.stringify(ctx.request.body)}`) - const { slug: typeId } = - source && source.id - ? source - : ctx.request.body.variables ? ctx.request.body.variables : { id: null } - const user = await isLoggedIn(ctx) - const memberId = user.sub - const isOwner = - type === `Member` - ? memberId === typeId - : await isRequestingMemberAlsoOwner({ ctx, memberId, type, typeId }) - if (isOwner) { - return next() - } - throw new Error(`Unauthorized, must be owner`) - }, - isOwnerOrHasRole: async (next, source, { roles, type }, ctx, ...p) => { - const { authId: memberId } = await isLoggedIn(ctx) - logger.info(`directive isOwnerOrHasRole 1: ${type}`) - logger.info(`directive isOwnerOrHasRole 2: ${JSON.stringify(roles)}`) - if(memberId === undefined && role=== undefined) throw new Error(`Not logged in`) - if (roles.includes(role)) { - return next() - } - - const { authId: typeId } = ctx.request.body.variables - const isOwner = await isRequestingMemberAlsoOwner({ - ctx, - memberId, - type, - typeId - }) - logger.info(`directive isOwnerOrHasRole 3: ${JSON.stringify(isOwner)}`) - if (isOwner) { - return next() - } - - const hasRole = await isRequestingMember({ - ctx, - memberId, - type, - typeId - }) - if(hasRole){ - return next() - } - throw new Error(`Unauthorized, not owner or incorrect role`) - } -} - -module.exports = { directiveResolvers } diff --git a/api/src/email/sendgrid.js b/api/src/email/sendgrid.js index e0ab384df..e5243a357 100644 --- a/api/src/email/sendgrid.js +++ b/api/src/email/sendgrid.js @@ -1,7 +1,7 @@ var jwt = require('jsonwebtoken') var axios = require('axios') -import { logger } from './logger' +import { logger } from '../logger' const sendTeamMemberInvite = function(email, team) { const dev = process.env.NODE_ENV === 'development' ? true : false