Still send cursorData for logged in users

This commit is contained in:
Chrystal Griffiths 2019-02-12 14:00:47 +00:00
parent 2ec760403f
commit bb06f82e04
2 changed files with 15 additions and 8 deletions

View file

@ -52,6 +52,10 @@ module.exports = WebsocketController =
metrics.inc "editor.leave-project"
Utils.getClientAttributes client, ["project_id", "user_id"], (error, {project_id, user_id}) ->
return callback(error) if error?
logger.log {project_id, user_id, client_id: client.id}, "client leaving project"
WebsocketLoadBalancer.emitToRoom project_id, "clientTracking.clientDisconnected", client.id
# bail out if the client had not managed to authenticate or join
# the project. Prevents downstream errors in docupdater from
# flushProjectToMongoAndDelete with null project_id.
@ -61,9 +65,6 @@ module.exports = WebsocketController =
if not project_id?
logger.log {user_id: user_id, client_id: client.id}, "client leaving, not in project"
return callback()
logger.log {project_id, user_id, client_id: client.id}, "client leaving project"
WebsocketLoadBalancer.emitToRoom project_id, "clientTracking.clientDisconnected", client.id
# We can do this in the background
ConnectedUsersManager.markUserAsDisconnected project_id, client.id, (err) ->
@ -144,13 +145,18 @@ module.exports = WebsocketController =
cursorData.id = client.id
cursorData.user_id = user_id if user_id?
cursorData.email = email if email?
if first_name or last_name
if !user_id or user_id == 'anonymous-user'
cursorData.name = ""
callback()
else
cursorData.name = if first_name && last_name
"#{first_name} #{last_name}"
else if first_name
first_name
else if last_name
last_name
else
""
ConnectedUsersManager.updateUserPosition(project_id, client.id, {
first_name: first_name,
last_name: last_name,
@ -160,10 +166,7 @@ module.exports = WebsocketController =
row: cursorData.row,
column: cursorData.column,
doc_id: cursorData.doc_id
}, callback)
else
cursorData.name = ""
callback()
}, callback)
WebsocketLoadBalancer.emitToRoom(project_id, "clientTracking.clientUpdated", cursorData)
getConnectedUsers: (client, callback = (error, users) ->) ->

View file

@ -554,6 +554,10 @@ describe 'WebsocketController', ->
})
.should.equal true
it "should not send cursor data to the connected user manager", (done)->
@ConnectedUsersManager.updateUserPosition.called.should.equal false
done()
describe "applyOtUpdate", ->
beforeEach ->
@update = {op: {p: 12, t: "foo"}}