From 42dc2bc26fc099624816c60f2a772932fd808df4 Mon Sep 17 00:00:00 2001 From: Bradley Hilton Date: Wed, 19 Apr 2017 11:52:45 -0500 Subject: [PATCH 1/2] Don't allow the archive commands to be run in a direct message room --- packages/rocketchat-slashcommands-archiveroom/server.js | 5 +++++ .../rocketchat-slashcommands-unarchiveroom/server.js | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/packages/rocketchat-slashcommands-archiveroom/server.js b/packages/rocketchat-slashcommands-archiveroom/server.js index 966b6b17a7a4..3d382cc25cb7 100644 --- a/packages/rocketchat-slashcommands-archiveroom/server.js +++ b/packages/rocketchat-slashcommands-archiveroom/server.js @@ -14,6 +14,11 @@ function Archive(command, params, item) { room = RocketChat.models.Rooms.findOneByName(channel); } + // You can not archive direct messages. + if (room.t === 'd') { + return; + } + const user = Meteor.users.findOne(Meteor.userId()); if (room.archived) { diff --git a/packages/rocketchat-slashcommands-unarchiveroom/server.js b/packages/rocketchat-slashcommands-unarchiveroom/server.js index 06bbd63075c6..a9884b870755 100644 --- a/packages/rocketchat-slashcommands-unarchiveroom/server.js +++ b/packages/rocketchat-slashcommands-unarchiveroom/server.js @@ -13,6 +13,12 @@ function Unarchive(command, params, item) { channel = channel.replace('#', ''); room = RocketChat.models.Rooms.findOneByName(channel); } + + // You can not archive direct messages. + if (room.t === 'd') { + return; + } + const user = Meteor.users.findOne(Meteor.userId()); if (!room.archived) { @@ -27,7 +33,9 @@ function Unarchive(command, params, item) { }); return; } + Meteor.call('unarchiveRoom', room._id); + RocketChat.models.Messages.createRoomUnarchivedByRoomIdAndUser(room._id, Meteor.user()); RocketChat.Notifications.notifyUser(Meteor.userId(), 'message', { _id: Random.id(), @@ -38,6 +46,7 @@ function Unarchive(command, params, item) { sprintf: [channel] }, user.language) }); + return Unarchive; } From d25a067b6201c38461292c6a650cc4fd985ae2bc Mon Sep 17 00:00:00 2001 From: Bradley Hilton Date: Wed, 19 Apr 2017 13:37:00 -0500 Subject: [PATCH 2/2] Prevent the archiving of direct message rooms --- packages/rocketchat-lib/server/methods/archiveRoom.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/rocketchat-lib/server/methods/archiveRoom.js b/packages/rocketchat-lib/server/methods/archiveRoom.js index 75df0fe4d8d2..9f79b9539af5 100644 --- a/packages/rocketchat-lib/server/methods/archiveRoom.js +++ b/packages/rocketchat-lib/server/methods/archiveRoom.js @@ -17,6 +17,10 @@ Meteor.methods({ throw new Meteor.Error('error-not-authorized', 'Not authorized', { method: 'archiveRoom' }); } + if (room.t === 'd') { + throw new Meteor.Error('error-direct-message-room', 'Direct Messages can not be archived', { method: 'archiveRoom' }); + } + return RocketChat.archiveRoom(rid); } });