|
|
|
@ -16,20 +16,21 @@ RocketChat.setUsername = (user, username) -> |
|
|
|
|
|
|
|
|
|
previousUsername = user.username |
|
|
|
|
|
|
|
|
|
# Username is available, set username and update all references |
|
|
|
|
ChatMessage.update { "u._id": user._id }, { $set: { "u.username": username } }, { multi: true } |
|
|
|
|
# Username is available; if coming from old username, update all references |
|
|
|
|
if previousUsername |
|
|
|
|
ChatMessage.update { "u._id": user._id }, { $set: { "u.username": username } }, { multi: true } |
|
|
|
|
|
|
|
|
|
# @TODO: update chatmessage mentions |
|
|
|
|
ChatMessage.find({ "mentions.username": previousUsername }).forEach (msg) -> |
|
|
|
|
updatedMsg = msg.msg.replace(new RegExp("@#{previousUsername}", "ig"), "@#{username}") |
|
|
|
|
ChatMessage.update { _id: msg._id, "mentions.username": previousUsername }, { $set: { "mentions.$.username": username, "msg": updatedMsg } } |
|
|
|
|
ChatMessage.find({ "mentions.username": previousUsername }).forEach (msg) -> |
|
|
|
|
updatedMsg = msg.msg.replace(new RegExp("@#{previousUsername}", "ig"), "@#{username}") |
|
|
|
|
ChatMessage.update { _id: msg._id, "mentions.username": previousUsername }, { $set: { "mentions.$.username": username, "msg": updatedMsg } } |
|
|
|
|
|
|
|
|
|
ChatRoom.update { usernames: previousUsername }, { $set: { "usernames.$": username } }, { multi: true } |
|
|
|
|
ChatRoom.update { "u._id": user._id }, { $set: { "u.username": username } }, { multi: true } |
|
|
|
|
ChatRoom.update { usernames: previousUsername }, { $set: { "usernames.$": username } }, { multi: true } |
|
|
|
|
ChatRoom.update { "u._id": user._id }, { $set: { "u.username": username } }, { multi: true } |
|
|
|
|
|
|
|
|
|
ChatSubscription.update { "u._id": user._id }, { $set: { "u.username": username } }, { multi: true } |
|
|
|
|
ChatSubscription.update { name: previousUsername, t: "d" }, { $set: { name: username } }, { multi: true } |
|
|
|
|
ChatSubscription.update { "u._id": user._id }, { $set: { "u.username": username } }, { multi: true } |
|
|
|
|
ChatSubscription.update { name: previousUsername, t: "d" }, { $set: { name: username } }, { multi: true } |
|
|
|
|
|
|
|
|
|
# Set new username |
|
|
|
|
Meteor.users.update { _id: user._id }, { $set: { username: username } } |
|
|
|
|
user.username = username |
|
|
|
|
return user |
|
|
|
|