diff --git a/server/services/team/service.ts b/server/services/team/service.ts index 35ab4038dac55..4bc7c3cd60a54 100644 --- a/server/services/team/service.ts +++ b/server/services/team/service.ts @@ -559,16 +559,19 @@ export class TeamService extends ServiceClass implements ITeamService { throw new Error('invalid-user'); } - const membersList: Array> = members?.map((member) => ({ - teamId, - userId: member.userId, - roles: member.roles || [], - createdAt: new Date(), - createdBy, - })) || []; + const team = await this.TeamModel.findOneById(teamId, { projection: { roomId: 1 } }); + if (!team) { + throw new Error('team-does-not-exist'); + } + + for await (const member of members) { + const user = await this.Users.findOneById(member.userId, { projection: { username: 1 } }); + await addUserToRoom(team.roomId, user, createdBy, false); - await this.TeamMembersModel.insertMany(membersList); - await this.addMembersToDefaultRooms(createdBy, teamId, membersList); + if (member.roles) { + await this.addRolesToMember(teamId, member.userId, member.roles); + } + } } async updateMember(teamId: string, member: ITeamMemberParams): Promise {