diff --git a/services/web/app/src/Features/Subscription/TeamInvitesHandler.js b/services/web/app/src/Features/Subscription/TeamInvitesHandler.js index 828085370c..1c78d0d06b 100644 --- a/services/web/app/src/Features/Subscription/TeamInvitesHandler.js +++ b/services/web/app/src/Features/Subscription/TeamInvitesHandler.js @@ -174,6 +174,7 @@ function createInvite(subscription, email, inviter, callback) { ) if (invite) { + invite = invite.toObject() invite.sentAt = new Date() } else { invite = { diff --git a/services/web/frontend/js/main/user-membership.js b/services/web/frontend/js/main/user-membership.js index ff521f4e13..e3e889515d 100644 --- a/services/web/frontend/js/main/user-membership.js +++ b/services/web/frontend/js/main/user-membership.js @@ -56,7 +56,12 @@ App.controller('UserMembershipController', function ($scope, queuedHttp) { $scope.inputs.addMembers.inflightCount -= 1 const { data } = response if (data.user != null) { - $scope.users.push(data.user) + const alreadyListed = $scope.users.find( + scopeUser => scopeUser.email === data.user.email + ) + if (!alreadyListed) { + $scope.users.push(data.user) + } } return ($scope.inputs.addMembers.content = '') }) diff --git a/services/web/test/unit/src/Subscription/TeamInvitesHandlerTests.js b/services/web/test/unit/src/Subscription/TeamInvitesHandlerTests.js index b9ae93a01c..bc43f23625 100644 --- a/services/web/test/unit/src/Subscription/TeamInvitesHandlerTests.js +++ b/services/web/test/unit/src/Subscription/TeamInvitesHandlerTests.js @@ -23,6 +23,8 @@ describe('TeamInvitesHandler', function () { email: 'jorah@example.com', token: this.token, } + // ensure teamInvite can be converted from Document to Object + this.teamInvite.toObject = () => this.teamInvite this.subscription = { id: '55153a8014829a865bbf700d',