diff --git a/.meteor/packages b/.meteor/packages index e43524f78ebb..2879d89952b8 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -107,6 +107,7 @@ konecty:nrr konecty:user-presence rocketchat:streamer +arunoda:streams chrismbeckett:toastr dispatch:run-as-user francocatena:status diff --git a/.meteor/versions b/.meteor/versions index 894409ce031a..8476a4b0200f 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -7,6 +7,7 @@ accounts-oauth@1.1.8 accounts-password@1.1.4 accounts-twitter@1.0.6 aldeed:simple-schema@1.5.3 +arunoda:streams@0.1.17 autoupdate@1.2.4 babel-compiler@5.8.24_1 babel-runtime@0.1.4 diff --git a/packages/rocketchat-livechat/app/client/startup/room.coffee b/packages/rocketchat-livechat/app/client/startup/room.coffee index bba1c40ab650..2dcab3056ea6 100644 --- a/packages/rocketchat-livechat/app/client/startup/room.coffee +++ b/packages/rocketchat-livechat/app/client/startup/room.coffee @@ -1,4 +1,4 @@ -msgStream = new Meteor.Streamer 'messages' +msgStream = new Meteor.Streamer 'room-messages' Tracker.autorun -> if visitor.getRoom()? msgStream.on visitor.getRoom(), (msg) -> diff --git a/packages/rocketchat-ui/lib/RoomManager.coffee b/packages/rocketchat-ui/lib/RoomManager.coffee index a1a8172be026..6b0c9afca095 100644 --- a/packages/rocketchat-ui/lib/RoomManager.coffee +++ b/packages/rocketchat-ui/lib/RoomManager.coffee @@ -49,7 +49,7 @@ RocketChat.Notifications.onUser 'message', (msg) -> @RoomManager = new class openedRooms = {} subscription = null - msgStream = new Meteor.Streamer 'messages' + msgStream = new Meteor.Streamer 'room-messages' onlineUsers = new ReactiveVar {} Dep = new Tracker.Dependency diff --git a/server/stream/messages.coffee b/server/stream/messages.coffee index 895c0154dd81..7e7abad2e57f 100644 --- a/server/stream/messages.coffee +++ b/server/stream/messages.coffee @@ -1,4 +1,22 @@ -@msgStream = new Meteor.Streamer 'messages' +# COMPATIBILITY +oldMsgStream = new Meteor.Stream 'messages' + +oldMsgStream.permissions.write (eventName) -> + return false + +oldMsgStream.permissions.read (eventName) -> + try + canAccess = Meteor.call 'canAccessRoom', eventName, this.userId + + return false if not canAccess + + return true + catch e + return false +# COMPATIBILITY + + +@msgStream = new Meteor.Streamer 'room-messages' msgStream.allowWrite('none') @@ -24,7 +42,9 @@ Meteor.startup -> RocketChat.models.Messages.findVisibleCreatedOrEditedAfterTimestamp(new Date(), options).observe added: (record) -> + oldMsgStream.emit record.rid, record msgStream.emitWithoutBroadcast record.rid, record changed: (record) -> + oldMsgStream.emit record.rid, record msgStream.emitWithoutBroadcast record.rid, record