Skip to content
Snippets Groups Projects
Commit 7724b202 authored by Rodrigo Nascimento's avatar Rodrigo Nascimento
Browse files

Replace all Meteor.users.update

parent 9bf7b786
No related branches found
No related tags found
No related merge requests found
Showing
with 106 additions and 29 deletions
......@@ -82,3 +82,93 @@ RocketChat.models.Users = new class asd extends RocketChat.models._Base
lastLogin: new Date
return @update _id, update
setServiceId: (_id, serviceName, serviceId) ->
update =
$set: {}
serviceIdKey = "services.#{serviceName}.id"
update.$set[serviceIdKey] = serviceData.id
return @update _id, update
setUsername: (_id, username) ->
update =
$set: username: username
return @update _id, update
setName: (_id, name) ->
update =
$set:
name: name
return @update _id, update
setAvatarOrigin: (_id, origin) ->
update =
$set:
avatarOrigin: origin
return @update _id, update
unsetAvatarOrigin: (_id) ->
update =
$unset:
avatarOrigin: 1
return @update _id, update
setUserActive: (_id, active=true) ->
update =
$set:
active: active
return @update _id, update
setAllUsersActive: (active) ->
update =
$set:
active: active
return @update {}, update, { multi: true }
unsetLoginTokens: (_id) ->
update =
$set:
"services.resume.loginTokens" : []
return @update _id, update
setLanguage: (_id, language) ->
update =
$set:
language: language
return @update _id, update
setProfile: (_id, profile) ->
update =
$set:
"settings.profile": profile
return @update _id, update
setPreferences: (_id, preferences) ->
update =
$set:
"settings.preferences": preferences
return @update _id, update
setUtcOffset: (_id, utcOffset) ->
query =
_id: _id
utcOffset:
$ne: utcOffset
update =
$set:
utcOffset: utcOffset
return @update query, update
......@@ -25,13 +25,6 @@ Accounts.updateOrCreateUserFromExternalService = (serviceName, serviceData, opti
user = RocketChat.models.Users.findOneByVerifiedEmailAddress(serviceData.email, true)
if user?
serviceIdKey = "services." + serviceName + ".id"
update = {}
update[serviceIdKey] = serviceData.id
Meteor.users.update({
_id: user._id
}, {
$set: update
})
RocketChat.models.Users.setServiceId user._id, serviceName, serviceData.id
return orig_updateOrCreateUserFromExternalService.apply(this, arguments)
......@@ -10,10 +10,6 @@ Meteor.methods
# ChatRoom.update({ _id: rid}, {'$pull': { userWatching: Meteor.userId(), userIn: Meteor.userId() }})
userUnset = {'$unset': {}}
userUnset.$unset['readMessages.' + rid] = ''
Meteor.users.update({_id: Meteor.userId()}, userUnset)
ChatMessage.remove({rid: rid})
ChatSubscription.remove({rid: rid})
ChatRoom.remove(rid)
......
......@@ -6,9 +6,7 @@ Meteor.methods
userId = Accounts.createUser userData
Meteor.users.update userId,
$set:
name: formData.name
RocketChat.models.Users.setName userId, formData.name
if userData.email
Accounts.sendVerificationEmail(userId, userData.email);
......@@ -9,7 +9,7 @@ Meteor.methods
RocketChatFileAvatarInstance.deleteFile "#{user.username}.jpg"
Meteor.users.update user._id, {$unset: {avatarOrigin: 1}}
RocketChat.models.Users.unsetAvatarOrigin user._id
RocketChat.Notifications.notifyAll 'updateAvatar', {username: user.username}
return
......@@ -23,6 +23,6 @@ Meteor.methods
if settings.autoImageLoad?
preferences.autoImageLoad = if settings.autoImageLoad is "1" then true else false
Meteor.users.update Meteor.userId(), { $set: { "settings.preferences": preferences } }
RocketChat.models.Users.setPreferences Meteor.userId(), preferences
return true
......@@ -2,7 +2,7 @@ Meteor.methods
saveUserProfile: (settings) ->
if Meteor.userId()
if settings.language?
Meteor.users.update Meteor.userId(), { $set: { language: settings.language } }
RocketChat.models.Users.setLanguage Meteor.userId(), settings.language
if settings.password?
Accounts.setPassword Meteor.userId(), settings.password, { logout: false }
......@@ -12,6 +12,6 @@ Meteor.methods
profile = {}
Meteor.users.update Meteor.userId(), { $set: { "settings.profile": profile } }
RocketChat.models.Users.setProfile Meteor.userId(), profile
return true
......@@ -8,7 +8,7 @@ Meteor.methods
user = Meteor.user()
if service is 'initials'
Meteor.users.update {_id: user._id}, {$set: {avatarOrigin: service}}
RocketChat.models.Users.setAvatarOrigin user._id, service
return
{image, contentType} = RocketChatFile.dataURIParse dataURI
......@@ -17,7 +17,7 @@ Meteor.methods
ws = RocketChatFileAvatarInstance.createWriteStream "#{user.username}.jpg", contentType
ws.on 'end', Meteor.bindEnvironment ->
Meteor.setTimeout ->
Meteor.users.update {_id: user._id}, {$set: {avatarOrigin: service}}
RocketChat.models.Users.setAvatarOrigin user._id, service
RocketChat.Notifications.notifyAll 'updateAvatar', {username: user.username}
, 500
......
......@@ -7,9 +7,9 @@ Meteor.methods
unless user?.admin is true
throw new Meteor.Error 'not-authorized', '[methods] setUserActiveStatus -> Not authorized'
Meteor.users.update userId, { $set: { active: active } }
RocketChat.models.Users.setUserActive userId, active
if active is false
Meteor.users.update userId, { $set: { "services.resume.loginTokens" : [] } }
RocketChat.models.Users.unsetLoginTokens userId
return true
......@@ -5,4 +5,4 @@ Meteor.methods
@unblock()
Meteor.users.update({_id: @userId, utcOffset: {$ne: utcOffset}}, {$set: {utcOffset: utcOffset}})
\ No newline at end of file
RocketChat.models.Users.setUtcOffset @userId, utcOffset
......@@ -5,6 +5,6 @@ Meteor.startup ->
RocketChat.models.Users.find({username: {$exists: false}, lastLogin: {$exists: true}}).forEach (user) ->
username = generateSuggestion(user)
if username? and username.trim() isnt ''
Meteor.users.update({_id: user._id}, {$set: {username: username}})
RocketChat.models.Users.setUsername user._id, username
else
console.log "User without username", JSON.stringify(user, null, ' ')
......@@ -3,5 +3,5 @@ Meteor.startup ->
version: 13
up: ->
# Set all current users as active
Meteor.users.update {}, { $set: { active: true } }, { multi: true }
console.log "Set all users as active"
\ No newline at end of file
RocketChat.models.Users.setAllUsersActive true
console.log "Set all users as active"
......@@ -20,6 +20,6 @@ Meteor.startup ->
rs = RocketChatFile.bufferToStream new Buffer(image, 'base64')
ws = RocketChatFileAvatarInstance.createWriteStream "#{user.username}.jpg", contentType
ws.on 'end', Meteor.bindEnvironment ->
Meteor.users.update {_id: user._id}, {$set: {avatarOrigin: service}}
RocketChat.models.Users.setAvatarOrigin user._id, service
rs.pipe(ws)
......@@ -29,7 +29,7 @@ Meteor.startup ->
if RocketChat.models.Users.findOneByUsername(newUserName)
newUserName = newUserName + Math.floor((Math.random() * 10) + 1);
console.log 'Adding: username ' + newUserName + ' to all user ' + user._id;
Meteor.users.update({'_id':user._id},{'$set':{'username':newUserName}});
RocketChat.models.Users.setUsername user._id, newUserName
console.log 'Fixing _id of direct messages rooms'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment