From bc0b50071e0e085b47b152a9ac880e12b923722e Mon Sep 17 00:00:00 2001 From: sudhanshu tiwary Date: Sat, 8 Mar 2025 17:41:32 +0530 Subject: [PATCH 1/2] fix(methods): remove deprecated canAccessRoom method --- apps/meteor/server/methods/canAccessRoom.ts | 70 --------------------- apps/meteor/server/methods/index.ts | 1 - 2 files changed, 71 deletions(-) delete mode 100644 apps/meteor/server/methods/canAccessRoom.ts diff --git a/apps/meteor/server/methods/canAccessRoom.ts b/apps/meteor/server/methods/canAccessRoom.ts deleted file mode 100644 index eeff599a85859..0000000000000 --- a/apps/meteor/server/methods/canAccessRoom.ts +++ /dev/null @@ -1,70 +0,0 @@ -import type { IRoom, IUser } from '@rocket.chat/core-typings'; -import type { ServerMethods } from '@rocket.chat/ddp-client'; -import { Rooms, Users } from '@rocket.chat/models'; -import { Match, check } from 'meteor/check'; -import { Meteor } from 'meteor/meteor'; - -import { canAccessRoomAsync } from '../../app/authorization/server'; -import { settings } from '../../app/settings/server'; - -declare module '@rocket.chat/ddp-client' { - // eslint-disable-next-line @typescript-eslint/naming-convention - interface ServerMethods { - canAccessRoom(rid: IRoom['_id'], userId: IUser['_id'], extraData?: Record): (IRoom & { username?: string }) | boolean; - } -} - -if (['yes', 'true'].includes(String(process.env.ALLOW_CANACCESSROOM_METHOD).toLowerCase())) { - console.warn('Method canAccessRoom is deprecated and will be removed after version 5.0'); - Meteor.methods({ - async canAccessRoom(rid, userId, extraData) { - check(rid, String); - check(userId, Match.Maybe(String)); - - let user; - - if (userId) { - user = await Users.findOneById(userId, { - projection: { - username: 1, - }, - }); - - if (!user?.username) { - throw new Meteor.Error('error-invalid-user', 'Invalid user', { - method: 'canAccessRoom', - }); - } - } - - if (!rid) { - throw new Meteor.Error('error-invalid-room', 'Invalid room', { - method: 'canAccessRoom', - }); - } - - const room = await Rooms.findOneById(rid); - - if (!room) { - throw new Meteor.Error('error-invalid-room', 'Invalid room', { - method: 'canAccessRoom', - }); - } - - if (await canAccessRoomAsync(room, user, extraData)) { - if (user) { - return { ...room, username: user.username }; - } - return room; - } - - if (!userId && settings.get('Accounts_AllowAnonymousRead') === false) { - throw new Meteor.Error('error-invalid-user', 'Invalid user', { - method: 'canAccessRoom', - }); - } - - return false; - }, - }); -} diff --git a/apps/meteor/server/methods/index.ts b/apps/meteor/server/methods/index.ts index dd738080e05d6..b2cd6f718b135 100644 --- a/apps/meteor/server/methods/index.ts +++ b/apps/meteor/server/methods/index.ts @@ -7,7 +7,6 @@ import './addRoomModerator'; import './addRoomOwner'; import './afterVerifyEmail'; import './browseChannels'; -import './canAccessRoom'; import './channelsList'; import './createDirectMessage'; import './deleteFileMessage'; From 8c9d28f3756a3706d6dc9ce2b58d67fe7380c5c5 Mon Sep 17 00:00:00 2001 From: Guilherme Gazzo Date: Fri, 9 May 2025 17:28:05 -0400 Subject: [PATCH 2/2] Create few-masks-punch.md --- .changeset/few-masks-punch.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/few-masks-punch.md diff --git a/.changeset/few-masks-punch.md b/.changeset/few-masks-punch.md new file mode 100644 index 0000000000000..cf455b251bd8d --- /dev/null +++ b/.changeset/few-masks-punch.md @@ -0,0 +1,5 @@ +--- +"@rocket.chat/meteor": major +--- + +Removes deprecated `canAccessRoom` meteor method