diff --git a/services/web/app/coffee/Features/Analytics/AnalyticsManager.coffee b/services/web/app/coffee/Features/Analytics/AnalyticsManager.coffee index 9165678070..003a59de2d 100644 --- a/services/web/app/coffee/Features/Analytics/AnalyticsManager.coffee +++ b/services/web/app/coffee/Features/Analytics/AnalyticsManager.coffee @@ -16,14 +16,15 @@ makeRequest = (opts, callback)-> module.exports = - idendifyUser: (user_id, old_user_id, callback)-> + idendifyUser: (user_id, old_user_id, callback = (error)->)-> opts = body: old_user_id:old_user_id json:true method:"POST" timeout:1000 - url: "/user/#{user_id}/idendify" + url: "/user/#{user_id}/identify" + makeRequest opts, callback recordEvent: (user_id, event, segmentation = {}, callback = (error) ->) -> if user_id+"" == settings.smokeTest?.userId+"" diff --git a/services/web/app/coffee/Features/Authentication/AuthenticationController.coffee b/services/web/app/coffee/Features/Authentication/AuthenticationController.coffee index 485b046a85..b78afef5fb 100644 --- a/services/web/app/coffee/Features/Authentication/AuthenticationController.coffee +++ b/services/web/app/coffee/Features/Authentication/AuthenticationController.coffee @@ -87,6 +87,7 @@ module.exports = AuthenticationController = LoginRateLimiter.recordSuccessfulLogin(email) AuthenticationController._recordSuccessfulLogin(user._id) Analytics.recordEvent(user._id, "user-logged-in", {ip:req.ip}) + Analytics.idendifyUser(user._id, req.sessionID) logger.log email: email, user_id: user._id.toString(), "successful log in" req.session.justLoggedIn = true # capture the request ip for use when creating the session diff --git a/services/web/test/UnitTests/coffee/Authentication/AuthenticationControllerTests.coffee b/services/web/test/UnitTests/coffee/Authentication/AuthenticationControllerTests.coffee index 94e930c7b1..6230696d99 100644 --- a/services/web/test/UnitTests/coffee/Authentication/AuthenticationControllerTests.coffee +++ b/services/web/test/UnitTests/coffee/Authentication/AuthenticationControllerTests.coffee @@ -254,6 +254,8 @@ describe "AuthenticationController", -> @cb = sinon.stub() @LoginRateLimiter.processLoginRequest.callsArgWith(1, null, true) @AuthenticationManager.authenticate = sinon.stub().callsArgWith(2, null, @user) + @req.sessionID = Math.random() + @AnalyticsManager.idendifyUser = sinon.stub() @AuthenticationController.doPassportLogin(@req, @req.body.email, @req.body.password, @cb) it "should attempt to authorise the user", -> @@ -261,6 +263,9 @@ describe "AuthenticationController", -> .calledWith(email: @email.toLowerCase(), @password) .should.equal true + it "should call idendifyUser", -> + @AnalyticsManager.idendifyUser.calledWith(@user._id, @req.sessionID).should.equal true + it "should setup the user data in the background", -> @UserHandler.setupLoginData.calledWith(@user).should.equal true