diff --git a/packages/component-invite/src/helpers/Team.js b/packages/component-invite/src/helpers/Team.js index 2012dbfd87d7b543552b54c0668a0b615e5df192..8c1c56d96962ea86daaa570637da4eb91af562e5 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) }