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

Replace all Subscription.insert

parent e03e929a
No related branches found
No related tags found
No related merge requests found
......@@ -98,117 +98,34 @@ RocketChat.models.Subscriptions = new class asd extends RocketChat.models._Base
return @update query, update, { multi: true }
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
# INSERT
create: (data) ->
user =
createdAt: new Date
avatarOrigin: 'none'
_.extend user, data
return @insert user
# REMOVE
removeById: (_id) ->
return @remove _id
removeByUnverifiedEmail: (email) ->
query =
emails:
$elemMatch:
address: email
verified: false
return @remove query
createWithRoomAndUser: (room, user, extraData) ->
subscription =
open: false
alert: false
unread: 0
ts: room.ts
rid: room._id
name: room.name
t: room.t
u:
_id: user._id
username: user.username
_.extend subscription, extraData
return @insert subscription
# # REMOVE
# removeById: (_id) ->
# return @remove _id
# removeByUnverifiedEmail: (email) ->
# query =
# emails:
# $elemMatch:
# address: email
# verified: false
# return @remove query
......@@ -23,17 +23,11 @@ Meteor.methods
ChatRoom.update data.rid, update
ChatSubscription.insert
rid: data.rid
RocketChat.models.Subscriptions.createWithRoomAndUser room, newUser,
ts: now
name: room.name
t: room.t
open: true
alert: true
unread: 1
u:
_id: newUser._id
username: data.username
ChatMessage.insert
rid: data.rid
......
......@@ -35,35 +35,26 @@ Meteor.methods
RocketChat.callbacks.run 'beforeCreateChannel', user, room
# create new room
rid = ChatRoom.insert room
room._id = ChatRoom.insert room
# set creator as channel moderator. permission limited to channel by scoping to rid
RocketChat.authz.addUsersToRoles(Meteor.userId(), 'moderator', rid)
RocketChat.authz.addUsersToRoles(Meteor.userId(), 'moderator', room._id)
for username in members
member = RocketChat.models.Users.findOneByUsername username
if not member?
continue
sub =
rid: rid
ts: now
name: name
t: 'c'
unread: 0
u:
_id: member._id
username: username
extra = {}
if username is user.username
sub.ls = now
sub.open = true
extra.ls = now
extra.open = true
ChatSubscription.insert sub
RocketChat.models.Subscriptions.createWithRoomAndUser room, member, extra
Meteor.defer ->
RocketChat.callbacks.run 'afterCreateChannel', user, room
return {
rid: rid
rid: room._id
}
......@@ -3,7 +3,7 @@ Meteor.methods
if not Meteor.userId()
throw new Meteor.Error 'invalid-user', "[methods] createPrivateGroup -> Invalid user"
unless RocketChat.authz.hasPermission(Meteor.userId(), 'create-p')
unless RocketChat.authz.hasPermission(Meteor.userId(), 'create-p')
throw new Meteor.Error 'not-authorized', '[methods] createPrivateGroup -> Not authorized'
console.log '[methods] createPrivateGroup -> '.green, 'userId:', Meteor.userId(), 'arguments:', arguments
......@@ -24,7 +24,7 @@ Meteor.methods
throw new Meteor.Error 'duplicate-name'
# create new room
rid = ChatRoom.insert
room =
usernames: members
ts: now
t: 'p'
......@@ -34,31 +34,25 @@ Meteor.methods
name: name
msgs: 0
room._id = ChatRoom.insert room
# set creator as group moderator. permission limited to group by scoping to rid
RocketChat.authz.addUsersToRoles(Meteor.userId(), 'moderator', rid)
RocketChat.authz.addUsersToRoles(Meteor.userId(), 'moderator', room._id)
for username in members
member = RocketChat.models.Users.findOneByUsername(username, { fields: { username: 1 }})
if not member?
continue
subscription =
rid: rid
ts: now
name: name
t: 'p'
open: true
u:
_id: member._id
username: member.username
extra = {}
if username is me.username
subscription.ls = now
extra.ls = now
else
subscription.alert = true
extra.alert = true
ChatSubscription.insert subscription
RocketChat.models.Subscriptions.createWithRoomAndUser room, member, extra
return {
rid: rid
rid: room._id
}
......@@ -22,17 +22,11 @@ Meteor.methods
ChatRoom.update rid, update
ChatSubscription.insert
rid: rid
RocketChat.models.Subscriptions.createWithRoomAndUser room, user,
ts: now
name: room.name
t: room.t
open: true
alert: true
unread: 1
u:
_id: user._id
username: user.username
ChatMessage.insert
rid: rid
......
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