From 6a4be16ac778c20e1bfb9075df2960c0a7411b38 Mon Sep 17 00:00:00 2001
From: Jure Triglav <juretriglav@gmail.com>
Date: Fri, 18 Jan 2019 15:31:59 +1300
Subject: [PATCH] feat(model-team): use authorization helpers available from
 context

---
 packages/components/model-team/src/graphql.js | 20 +++++--------------
 1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/packages/components/model-team/src/graphql.js b/packages/components/model-team/src/graphql.js
index ae9bd3223..2f4034d32 100644
--- a/packages/components/model-team/src/graphql.js
+++ b/packages/components/model-team/src/graphql.js
@@ -48,14 +48,9 @@ const resolvers = {
       return ctx.connectors.Team.update(id, input, ctx)
     },
     async addMembers(_, { id, members }, ctx) {
-      const {
-        helpers: { can, canKnowAbout },
-      } = require('pubsweet-server')
-
-      await can(ctx.user, 'addMembers', id)
+      await ctx.helpers.can(ctx.user, 'addMembers', id)
 
       let team = await ctx.connectors.Team.model.query().findById(id)
-
       await team.$relatedQuery('members').relate(members)
 
       team = await ctx.connectors.Team.model
@@ -65,22 +60,17 @@ const resolvers = {
 
       team.members = team.members.map(member => member.id)
 
-      const outputFilter = await canKnowAbout(ctx.user, team)
+      const outputFilter = await ctx.helpers.canKnowAbout(ctx.user, team)
       return outputFilter(team)
     },
     async removeMembers(_, { id, members }, ctx) {
-      const {
-        helpers: { can, canKnowAbout },
-      } = require('pubsweet-server')
-
-      await can(ctx.user, 'removeMembers', id)
+      await ctx.helpers.can(ctx.user, 'removeMembers', id)
 
       let team = await ctx.connectors.Team.model.query().findById(id)
-
       await team
         .$relatedQuery('members')
         .unrelate()
-        .whereIn('id', members)
+        .whereIn('team_members.user_id', members)
 
       team = await ctx.connectors.Team.model
         .query()
@@ -89,7 +79,7 @@ const resolvers = {
 
       team.members = team.members.map(member => member.id)
 
-      const outputFilter = await canKnowAbout(ctx.user, team)
+      const outputFilter = await ctx.helpers.canKnowAbout(ctx.user, team)
       return outputFilter(team)
     },
   },
-- 
GitLab