From 0af770feb96bba3b87d931b6ae2fec8ad1fb5ab3 Mon Sep 17 00:00:00 2001
From: Sebastian <sebastian.mihalache@thinslices.com>
Date: Wed, 4 Apr 2018 16:15:03 +0300
Subject: [PATCH] feat(component-invite): do not add team on second invitation

---
 packages/component-invite/src/helpers/Team.js | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/packages/component-invite/src/helpers/Team.js b/packages/component-invite/src/helpers/Team.js
index 2012dbfd8..8c1c56d96 100644
--- a/packages/component-invite/src/helpers/Team.js
+++ b/packages/component-invite/src/helpers/Team.js
@@ -44,22 +44,23 @@ const createNewTeam = async (collectionId, role, userId, TeamModel) => {
 const setupManuscriptTeam = async (models, user, collectionId, role) => {
   const teams = await models.Team.all()
   user.teams = user.teams || []
-  const filteredTeams = teams.filter(
+  let foundTeam = teams.find(
     team =>
       team.group === role &&
       team.object.type === 'collection' &&
       team.object.id === collectionId,
   )
 
-  if (filteredTeams.length > 0) {
-    let team = filteredTeams[0]
-    team.members.push(user.id)
+  if (foundTeam !== undefined) {
+    foundTeam.members.push(user.id)
 
     try {
-      team = await team.save()
-      user.teams.push(team.id)
-      await user.save()
-      return team
+      foundTeam = await foundTeam.save()
+      if (!user.teams.includes(foundTeam.id)) {
+        user.teams.push(foundTeam.id)
+        await user.save()
+      }
+      return foundTeam
     } catch (e) {
       logger.error(e)
     }
-- 
GitLab