From e39bc2a47e7b3e2a04307e582ccd388df11a6699 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Thu, 20 Oct 2016 12:18:12 -0200 Subject: [PATCH] Fix set room as read only --- packages/rocketchat-cas/.npm/package/npm-shrinkwrap.json | 4 ++-- .../server/models/Rooms.coffee | 8 +++++--- packages/rocketchat-lib/server/models/_BaseCache.js | 2 +- server/publications/room.js | 3 ++- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/rocketchat-cas/.npm/package/npm-shrinkwrap.json b/packages/rocketchat-cas/.npm/package/npm-shrinkwrap.json index 7d1d73b53c3..9398000e010 100644 --- a/packages/rocketchat-cas/.npm/package/npm-shrinkwrap.json +++ b/packages/rocketchat-cas/.npm/package/npm-shrinkwrap.json @@ -17,7 +17,7 @@ }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "from": "core-util-is@>=1.0.0 <1.1.0" }, "css-select": { @@ -86,7 +86,7 @@ }, "isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "resolved": "http://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "from": "isarray@0.0.1" }, "lodash": { diff --git a/packages/rocketchat-channel-settings/server/models/Rooms.coffee b/packages/rocketchat-channel-settings/server/models/Rooms.coffee index f4328cebf9d..bf2bd6e0af6 100644 --- a/packages/rocketchat-channel-settings/server/models/Rooms.coffee +++ b/packages/rocketchat-channel-settings/server/models/Rooms.coffee @@ -19,9 +19,11 @@ RocketChat.models.Rooms.setReadOnlyById = (_id, readOnly) -> if readOnly # we want to mute all users without the post-readonly permission - usernames = @findOne(query, { fields: { usernames: 1 }}) - users = RocketChat.models.Users.findUsersByUsernames usernames?.usernames, {fields: {username: 1}} - users.forEach (user) -> + RocketChat.models.Subscriptions.findByRoomId(_id).forEach (subscription) -> + if not subscription._user? + return + + user = subscription._user if RocketChat.authz.hasPermission(user._id, 'post-readonly') is false # create a new array if necessary update.$set.muted = [] if !update.$set.muted diff --git a/packages/rocketchat-lib/server/models/_BaseCache.js b/packages/rocketchat-lib/server/models/_BaseCache.js index 0057c8923cf..d6b57c36728 100644 --- a/packages/rocketchat-lib/server/models/_BaseCache.js +++ b/packages/rocketchat-lib/server/models/_BaseCache.js @@ -488,7 +488,7 @@ class ModelsBaseCache extends EventEmitter { processQueryOptionsOnResult(result, options={}) { if (result === undefined || result === null) { - return result; + return undefined; } if (Array.isArray(result)) { diff --git a/server/publications/room.js b/server/publications/room.js index dd82fec08c9..4463f1db1b7 100644 --- a/server/publications/room.js +++ b/server/publications/room.js @@ -20,7 +20,8 @@ const options = { code: 1, open: 1, v: 1, - label: 1 + label: 1, + ro: 1 }) };