Skip to content

Commit 6f5dad3

Browse files
committed
Merge remote-tracking branch 'origin/master' into meteor-1.2
# Conflicts: # packages/rocketchat-livechat/package.js
2 parents 3d96c11 + 1875e33 commit 6f5dad3

File tree

132 files changed

+1762
-912
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+1762
-912
lines changed

client/views/app/messagePopupConfig.coffee

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
@onlineUsers = new Mongo.Collection 'online-users'
1+
@filteredUsers = new Mongo.Collection 'filtered-users'
22

33
Template.messagePopupConfig.helpers
44
popupUserConfig: ->
55
self = this
66
template = Template.instance()
77
config =
88
title: 'People'
9-
collection: onlineUsers
9+
collection: filteredUsers
1010
template: 'messagePopupUser'
1111
getInput: self.getInput
1212
textFilterDelay: 200
1313
getFilter: (collection, filter) ->
1414
exp = new RegExp("^#{filter}", 'i')
15-
Meteor.subscribe 'onlineUsers', filter
16-
items = onlineUsers.find({$or: [{username: exp}, {name: exp}]}, {limit: 5}).fetch()
15+
Meteor.subscribe 'filteredUsers', filter
16+
items = filteredUsers.find({$or: [{username: exp}, {name: exp}]}, {limit: 5}).fetch()
1717

1818
all =
1919
_id: '@all'

packages/meteor-accounts-saml/saml_rocketchat.coffee

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ updateServices = ->
1616
Meteor.clearTimeout timer if timer?
1717

1818
timer = Meteor.setTimeout ->
19-
services = Settings.find({_id: /^(SAML_Custom_)[a-z]+$/i}).fetch()
19+
services = RocketChat.models.Settings.find({_id: /^(SAML_Custom_)[a-z]+$/i}).fetch()
2020

2121
Accounts.saml.settings.providers = []
2222

@@ -27,26 +27,26 @@ updateServices = ->
2727

2828
if service.value is true
2929
data =
30-
buttonLabelText: Settings.findOne({_id: "#{service._id}_button_label_text"})?.value
31-
buttonLabelColor: Settings.findOne({_id: "#{service._id}_button_label_color"})?.value
32-
buttonColor: Settings.findOne({_id: "#{service._id}_button_color"})?.value
30+
buttonLabelText: RocketChat.models.Settings.findOneById("#{service._id}_button_label_text")?.value
31+
buttonLabelColor: RocketChat.models.Settings.findOneById("#{service._id}_button_label_color")?.value
32+
buttonColor: RocketChat.models.Settings.findOneById("#{service._id}_button_color")?.value
3333
clientConfig:
34-
provider: Settings.findOne({_id: "#{service._id}_provider"})?.value
34+
provider: RocketChat.models.Settings.findOneById("#{service._id}_provider")?.value
3535

36-
Accounts.saml.settings.generateUsername = Settings.findOne({_id: "#{service._id}_generate_username"})?.value
36+
Accounts.saml.settings.generateUsername = RocketChat.models.Settings.findOneById("#{service._id}_generate_username")?.value
3737

3838
Accounts.saml.settings.providers.push
3939
provider: data.clientConfig.provider
40-
entryPoint: Settings.findOne({_id: "#{service._id}_entry_point"})?.value
41-
issuer: Settings.findOne({_id: "#{service._id}_issuer"})?.value
42-
cert: Settings.findOne({_id: "#{service._id}_cert"})?.value
40+
entryPoint: RocketChat.models.Settings.findOneById("#{service._id}_entry_point")?.value
41+
issuer: RocketChat.models.Settings.findOneById("#{service._id}_issuer")?.value
42+
cert: RocketChat.models.Settings.findOneById("#{service._id}_cert")?.value
4343

4444
ServiceConfiguration.configurations.upsert {service: serviceName.toLowerCase()}, $set: data
4545
else
4646
ServiceConfiguration.configurations.remove {service: serviceName.toLowerCase()}
4747
, 2000
4848

49-
Settings.find().observe
49+
RocketChat.models.Settings.find().observe
5050
added: (record) ->
5151
if /^SAML_.+/.test record._id
5252
updateServices()
@@ -60,5 +60,5 @@ Settings.find().observe
6060
updateServices()
6161

6262
Meteor.startup ->
63-
if not Settings.findOne({_id: /^(SAML_Custom)[a-z]+$/i})?
63+
if not RocketChat.models.Settings.findOne({_id: /^(SAML_Custom)[a-z]+$/i})?
6464
Meteor.call 'addSamlService', 'default'

packages/rocketchat-authorization/package.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@ Package.onUse(function(api) {
1616

1717
api.use('templating', 'client');
1818

19-
api.addFiles('lib/permissions.coffee', ['server', 'client']);
2019
api.addFiles('lib/rocketchat.coffee', ['server','client']);
20+
api.addFiles('client/collection.coffee', ['client']);
2121
api.addFiles('client/startup.coffee', ['client']);
2222
api.addFiles('client/hasPermission.coffee', ['client']);
2323
api.addFiles('client/hasRole.coffee', ['client']);
2424

2525

26+
api.addFiles('server/models/Permissions.coffee', ['server']);
27+
2628
api.addFiles('server/functions/addUsersToRoles.coffee', ['server']);
2729
api.addFiles('server/functions/getPermissionsForRole.coffee', ['server']);
2830
api.addFiles('server/functions/getRoles.coffee', ['server']);

packages/rocketchat-authorization/server/functions/getPermissionsForRole.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ RocketChat.authz.getPermissionsForRole = (roleName) ->
66
unless roleName in roleNames
77
throw new Meteor.Error 'invalid-role'
88

9-
return _.pluck(ChatPermissions.find({roles : roleName }).fetch(), '_id')
9+
return _.pluck(RocketChat.models.Permissions.findByRole( roleName ).fetch(), '_id')
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
RocketChat.models.Permissions = new class extends RocketChat.models._Base
2+
constructor: ->
3+
@_initModel 'permissions'
4+
5+
6+
# FIND
7+
findByRole: (role, options) ->
8+
query =
9+
roles: role
10+
11+
return @find query, options
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
Meteor.publish 'permissions', ->
22
console.log '[publish] permissions'.green
3-
return ChatPermissions.find {}
3+
return RocketChat.models.Permissions.find {}

packages/rocketchat-authorization/server/startup.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ Meteor.startup ->
7878
roles = _.pluck(Roles.getAllRoles().fetch(), 'name');
7979

8080
for permission in permissions
81-
ChatPermissions.upsert( permission._id, {$setOnInsert : permission })
81+
RocketChat.models.Permissions.upsert( permission._id, {$setOnInsert : permission })
8282
for role in permission.roles
8383
unless role in roles
8484
Roles.createRole role

packages/rocketchat-irc/irc.server.coffee

Lines changed: 16 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ class IrcClient
160160
console.log '[irc] onReceiveMessage -> '.yellow, 'source:', source, 'target:', target, 'content:', content
161161
source = @createUserWhenNotExist source
162162
if target[0] == '#'
163-
room = ChatRoom.findOne {name: target.substring 1}
163+
room = RocketChat.models.Rooms.findOneByName target.substring(1)
164164
else
165165
room = @createDirectRoomWhenNotExist(source, @user)
166166

@@ -178,7 +178,7 @@ class IrcClient
178178
onEndMemberList: (roomName) ->
179179
newMembers = @receiveMemberListBuf[roomName]
180180
console.log '[irc] onEndMemberList -> '.yellow, 'room:', roomName, 'members:', newMembers.join ','
181-
room = ChatRoom.findOne {name: roomName, t: 'c'}
181+
room = RocketChat.models.Rooms.findOneByNameAndType roomName, 'c'
182182
unless room
183183
return
184184

@@ -189,17 +189,9 @@ class IrcClient
189189
for member in appendMembers
190190
@createUserWhenNotExist member
191191

192-
update =
193-
$pull:
194-
usernames:
195-
$in: removeMembers
196-
ChatRoom.update room._id, update
197-
update =
198-
$addToSet:
199-
usernames:
200-
$each: appendMembers
201-
202-
ChatRoom.update room._id, update
192+
RocketChat.models.Rooms.removeUsernamesById room._id, removeMembers
193+
RocketChat.models.Rooms.addUsernamesById room._id, appendMembers
194+
203195
@isJoiningRoom = false
204196
roomName = @pendingJoinRoomBuf.shift()
205197
if roomName
@@ -231,15 +223,12 @@ class IrcClient
231223
msg = "PRIVMSG #{target} :#{message.msg}\r\n"
232224
@sendRawMessage msg
233225

234-
initRoomList: () ->
235-
roomsCursor = ChatRoom.find
236-
usernames:
237-
$in: [@user.username]
238-
t: 'c'
239-
,
226+
initRoomList: ->
227+
roomsCursor = RocketChat.models.Rooms.findByTypeContainigUsername 'c', @user.username,
240228
fields:
241229
name: 1
242230
t: 1
231+
243232
rooms = roomsCursor.fetch()
244233
for room in rooms
245234
@joinRoom(room)
@@ -276,25 +265,17 @@ class IrcClient
276265

277266
console.log '[irc] onAddMemberToRoom -> '.yellow, 'roomName:', roomName, 'member:', member
278267
@createUserWhenNotExist member
279-
update =
280-
$addToSet:
281-
usernames: member
282268

283-
ChatRoom.update {name: roomName}, update
269+
RocketChat.models.Rooms.addUsernameByName roomName, member
284270

285271
onRemoveMemberFromRoom: (member, roomName)->
286272
console.log '[irc] onRemoveMemberFromRoom -> '.yellow, 'roomName:', roomName, 'member:', member
287-
update =
288-
$pull:
289-
usernames: member
290-
ChatRoom.update {name: roomName}, update
273+
RocketChat.models.Rooms.removeUsernameByName roomName, member
291274

292275
onQuiteMember: (member) ->
293276
console.log '[irc] onQuiteMember ->'.yellow, 'username:', member
294-
update =
295-
$pull:
296-
usernames: member
297-
ChatRoom.update {}, update, {multi: true}
277+
RocketChat.models.Rooms.removeUsernameFromAll member
278+
298279
Meteor.users.update {name: member},
299280
$set:
300281
status: 'offline'
@@ -319,7 +300,7 @@ class IrcClient
319300
console.log '[irc] createDirectRoomWhenNotExist -> '.yellow, 'source:', source, 'target:', target
320301
rid = [source._id, target._id].sort().join('')
321302
now = new Date()
322-
ChatRoom.upsert
303+
RocketChat.models.Rooms.upsert
323304
_id: rid
324305
,
325306
$set:
@@ -328,7 +309,8 @@ class IrcClient
328309
t: 'd'
329310
msgs: 0
330311
ts: now
331-
ChatSubscription.upsert
312+
313+
RocketChat.models.Subscriptions.upsert
332314
rid: rid
333315
$and: [{'u._id': target._id}]
334316
,
@@ -373,7 +355,7 @@ class IrcSender
373355
if ircReceiveMessageCache.get cacheKey
374356
return message
375357

376-
room = ChatRoom.findOne message.rid, { fields: { name: 1, usernames: 1, t: 1 } }
358+
room = RocketChat.models.Rooms.findOneById message.rid, { fields: { name: 1, usernames: 1, t: 1 } }
377359
ircClient = IrcClient.getByUid message.u._id
378360
ircClient.sendMessage room, message
379361
return message

packages/rocketchat-ldap/config_server.coffee

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ updateServices = ->
1414
Meteor.clearTimeout timer if timer?
1515

1616
timer = Meteor.setTimeout ->
17-
enable = Settings.findOne({_id: 'LDAP_Enable', value: true})
17+
enable = RocketChat.models.Settings.findOne({_id: 'LDAP_Enable', value: true})
1818

1919
if enable?
2020
console.log "Enabling LDAP".blue
@@ -29,7 +29,7 @@ updateServices = ->
2929
LDAP_DEFAULTS.bindSearch = undefined
3030
, 2000
3131

32-
Settings.find().observe
32+
RocketChat.models.Settings.find().observe
3333
added: (record) ->
3434
if /^LDAP_.+/.test record._id
3535
updateServices()

packages/rocketchat-ldap/package.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Package.describe({
66
});
77

88
Npm.depends({
9-
ldapjs: "0.7.1",
9+
ldapjs: "0.7.1",
1010
});
1111

1212
// Loads all i18n.json files into tapi18nFiles
@@ -22,6 +22,7 @@ Package.onUse(function(api) {
2222
api.versionsFrom('1.0.3.1');
2323

2424
// Commom
25+
api.use('rocketchat:[email protected]');
2526
api.use('tap:[email protected]');
2627
api.use('yasaricli:slugify');
2728
api.use('coffeescript');
@@ -43,7 +44,7 @@ Package.onUse(function(api) {
4344
api.addFiles('config_server.coffee', 'server');
4445

4546
api.addFiles(tapi18nFiles);
46-
47+
4748
api.export('LDAP', 'server');
4849
api.export('LDAP_DEFAULTS', 'server');
4950
api.export('MeteorWrapperLdapjs');

packages/rocketchat-lib/lib/core.coffee

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
# @namespace RocketChat
44
###
55

6-
RocketChat = {}
6+
RocketChat =
7+
models: {}

packages/rocketchat-lib/package.js

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@ Package.describe({
77

88
Package.onUse(function(api) {
99
api.versionsFrom('1.0');
10-
10+
1111
api.use('reactive-var');
1212
api.use('reactive-dict');
1313
api.use('coffeescript');
1414
api.use('random');
15+
api.use('check');
1516
api.use('underscore');
1617
api.use('underscorestring:underscore.string');
18+
api.use('monbro:[email protected]');
1719

1820
// TAPi18n
1921
api.use('templating', 'client');
@@ -28,14 +30,33 @@ Package.onUse(function(api) {
2830
api.imply('tap:i18n');
2931
api.addFiles("package-tap.i18n", ["client", "server"]);
3032

33+
3134
// COMMON
3235
api.addFiles('lib/core.coffee');
3336
api.addFiles('lib/callbacks.coffee');
3437
api.addFiles('lib/slashCommand.coffee');
3538

36-
api.addFiles('settings/lib/settings.coffee');
39+
// MODELS SERVER
40+
api.addFiles('server/models/_Base.coffee', 'server');
41+
api.addFiles('server/models/Users.coffee', 'server');
42+
api.addFiles('server/models/Subscriptions.coffee', 'server');
43+
api.addFiles('server/models/Rooms.coffee', 'server');
44+
api.addFiles('server/models/Messages.coffee', 'server');
45+
api.addFiles('server/models/Reports.coffee', 'server');
46+
47+
// Settings
3748
api.addFiles('settings/lib/rocketchat.coffee');
3849

50+
api.addFiles('settings/server/models/Settings.coffee', 'server');
51+
api.addFiles('settings/server/methods.coffee', 'server');
52+
api.addFiles('settings/server/publication.coffee', 'server');
53+
api.addFiles('settings/server/startup.coffee', 'server');
54+
api.addFiles('settings/server/updateServices.coffee', 'server');
55+
api.addFiles('settings/server/addOAuthService.coffee', 'server');
56+
57+
api.addFiles('settings/lib/settings.coffee');
58+
59+
3960
// CLIENT
4061
api.addFiles('client/Notifications.coffee', 'client');
4162
api.addFiles('client/TabBar.coffee', 'client');
@@ -58,13 +79,6 @@ Package.onUse(function(api) {
5879

5980
api.addFiles('server/Notifications.coffee', 'server');
6081

61-
// Settings
62-
api.addFiles('settings/server/methods.coffee', 'server');
63-
api.addFiles('settings/server/publication.coffee', 'server');
64-
api.addFiles('settings/server/startup.coffee', 'server');
65-
api.addFiles('settings/server/updateServices.coffee', 'server');
66-
api.addFiles('settings/server/addOAuthService.coffee', 'server');
67-
6882
api.addFiles('server/cdn.coffee', 'server');
6983

7084
// TAPi18n -- needs to be added last

packages/rocketchat-lib/server/Notifications.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ RocketChat.Notifications = new class
1919
roomId = eventName.split('/')[0]
2020

2121
user = Meteor.users.findOne @userId, {fields: {username: 1}}
22-
return ChatRoom.findOne({_id: roomId, usernames: user.username}, {fields: {_id: 1}})?
22+
return RocketChat.models.Rooms.findOneByIdContainigUsername(roomId, user.username, {fields: {_id: 1}})?
2323

2424
@streamUser.permissions.write -> return @userId?
2525
@streamUser.permissions.read (eventName) ->

0 commit comments

Comments
 (0)