Просмотр исходного кода

Merge pull request #1865 from overleaf/ta-group-invite-self-view

Return User Data when Inviting Self in Group

GitOrigin-RevId: 5aeb9f0b21b84184a612ed730ac08dcb1c434f6e
Simon Detheridge 7 лет назад
Родитель
Сommit
d189dad162

+ 2 - 5
services/web/app/src/Features/Subscription/TeamInvitesController.js

@@ -37,14 +37,11 @@ module.exports = {
       teamManagerId,
       subscription,
       email,
-      function(err, invite) {
+      function(err, inviteUserData) {
         if (err != null) {
           return next(err)
         }
-        const inviteView = {
-          user: { email: invite.email, sentAt: invite.sentAt, invite: true }
-        }
-        return res.json(inviteView)
+        return res.json({ user: inviteUserData })
       }
     )
   },

+ 12 - 3
services/web/app/src/Features/Subscription/TeamInvitesHandler.js

@@ -161,7 +161,15 @@ var createInvite = function(subscription, email, inviter, callback) {
           }
 
           // legacy: remove any invite that might have been created in the past
-          removeInviteFromTeam(subscription._id, email, callback)
+          removeInviteFromTeam(subscription._id, email, error => {
+            const inviteUserData = {
+              email: inviter.email,
+              first_name: inviter.first_name,
+              last_name: inviter.last_name,
+              invite: false
+            }
+            callback(error, inviteUserData)
+          })
         }
       )
     }
@@ -194,9 +202,10 @@ var createInvite = function(subscription, email, inviter, callback) {
         }/`,
         appName: settings.appName
       }
-      EmailHandler.sendEmail('verifyEmailToJoinTeam', opts, error =>
+      EmailHandler.sendEmail('verifyEmailToJoinTeam', opts, error => {
+        Object.assign(invite, { invite: true })
         callback(error, invite)
-      )
+      })
     })
   })
 }

+ 6 - 0
services/web/test/unit/src/Subscription/TeamInvitesHandlerTests.js

@@ -139,6 +139,7 @@ describe('TeamInvitesHandler', function() {
           expect(invite.inviterName).to.eq(
             'Daenerys Targaryen (daenerys@example.com)'
           )
+          expect(invite.invite).to.be.true
           expect(this.subscription.teamInvites).to.deep.include(invite)
           done()
         }
@@ -220,6 +221,11 @@ describe('TeamInvitesHandler', function() {
             this.manager._id
           )
           sinon.assert.notCalled(this.subscription.save)
+          expect(invite.token).to.not.exist
+          expect(invite.email).to.eq(this.manager.email)
+          expect(invite.first_name).to.eq(this.manager.first_name)
+          expect(invite.last_name).to.eq(this.manager.last_name)
+          expect(invite.invite).to.be.false
           done(err)
         }
       )