diff --git a/apps/meteor/ee/server/lib/audit/methods.ts b/apps/meteor/ee/server/lib/audit/methods.ts index 3073002120f4d..7c77c90eab9d8 100644 --- a/apps/meteor/ee/server/lib/audit/methods.ts +++ b/apps/meteor/ee/server/lib/audit/methods.ts @@ -92,7 +92,7 @@ Meteor.methods({ check(endDate, Date); const user = (await Meteor.userAsync()) as IUser; - if (!user || !(await hasPermissionAsync(user._id, 'can-audit'))) { + if (!user || !(await hasPermissionAsync(user, 'can-audit'))) { throw new Meteor.Error('Not allowed'); } @@ -139,7 +139,7 @@ Meteor.methods({ check(endDate, Date); const user = (await Meteor.userAsync()) as IUser; - if (!user || !(await hasPermissionAsync(user._id, 'can-audit'))) { + if (!user || !(await hasPermissionAsync(user, 'can-audit'))) { throw new Meteor.Error('Not allowed'); } diff --git a/apps/meteor/server/api/webhooks.ts b/apps/meteor/server/api/webhooks.ts index 179fa2151826e..700f2be365164 100644 --- a/apps/meteor/server/api/webhooks.ts +++ b/apps/meteor/server/api/webhooks.ts @@ -169,7 +169,7 @@ async function executeIntegrationRest( return API.v1.unavailable('Service Unavailable'); } - if (!(await hasPermissionAsync(this.user._id, 'message-impersonate'))) { + if (!(await hasPermissionAsync(this.user, 'message-impersonate'))) { incomingLogger.error({ msg: 'Error trying to execute integration', integration: this.request.integration.name, diff --git a/apps/meteor/server/lib/omnichannel/closeLivechatRoom.ts b/apps/meteor/server/lib/omnichannel/closeLivechatRoom.ts index 96e1b889801fc..b79dad4587334 100644 --- a/apps/meteor/server/lib/omnichannel/closeLivechatRoom.ts +++ b/apps/meteor/server/lib/omnichannel/closeLivechatRoom.ts @@ -35,7 +35,7 @@ export const closeLivechatRoom = async ( } const subscription = await Subscriptions.findOneByRoomIdAndUserId(roomId, user._id, { projection: { _id: 1 } }); - if (!subscription && !(await hasPermissionAsync(user._id, 'close-others-livechat-room'))) { + if (!subscription && !(await hasPermissionAsync(user, 'close-others-livechat-room'))) { throw new Error('error-not-authorized'); } diff --git a/apps/meteor/server/lib/omnichannel/startup.ts b/apps/meteor/server/lib/omnichannel/startup.ts index 010b983039a38..05a184b4238e4 100644 --- a/apps/meteor/server/lib/omnichannel/startup.ts +++ b/apps/meteor/server/lib/omnichannel/startup.ts @@ -87,7 +87,7 @@ Meteor.startup(async () => { callbacks.add( 'beforeJoinRoom', async (user, room) => { - if (isOmnichannelRoom(room) && !(await hasPermissionAsync(user._id, 'view-l-room'))) { + if (isOmnichannelRoom(room) && !(await hasPermissionAsync(user, 'view-l-room'))) { throw new Meteor.Error('error-user-is-not-agent', 'User is not an Omnichannel Agent', { method: 'beforeJoinRoom', }); diff --git a/apps/meteor/server/meteor-methods/rooms/createPrivateGroup.ts b/apps/meteor/server/meteor-methods/rooms/createPrivateGroup.ts index f8ddc400535cf..2cec22010a327 100644 --- a/apps/meteor/server/meteor-methods/rooms/createPrivateGroup.ts +++ b/apps/meteor/server/meteor-methods/rooms/createPrivateGroup.ts @@ -43,10 +43,10 @@ export const createPrivateGroupMethod = async ( method: 'createPrivateGroup', }); } - if (!(await hasPermissionAsync(user._id, 'create-team-group', team.roomId))) { + if (!(await hasPermissionAsync(user, 'create-team-group', team.roomId))) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'createPrivateGroup' }); } - } else if (!(await hasPermissionAsync(user._id, 'create-p'))) { + } else if (!(await hasPermissionAsync(user, 'create-p'))) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'createPrivateGroup' }); } diff --git a/apps/meteor/server/meteor-methods/rooms/leaveRoom.ts b/apps/meteor/server/meteor-methods/rooms/leaveRoom.ts index c314763a4d032..fd357303e76d1 100644 --- a/apps/meteor/server/meteor-methods/rooms/leaveRoom.ts +++ b/apps/meteor/server/meteor-methods/rooms/leaveRoom.ts @@ -29,8 +29,8 @@ export const leaveRoomMethod = async (user: IUser, rid: string): Promise = } if ( - (room.t === 'c' && !(await hasPermissionAsync(user._id, 'leave-c'))) || - (room.t === 'p' && !(await hasPermissionAsync(user._id, 'leave-p'))) + (room.t === 'c' && !(await hasPermissionAsync(user, 'leave-c'))) || + (room.t === 'p' && !(await hasPermissionAsync(user, 'leave-p'))) ) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'leaveRoom' }); } diff --git a/ee/packages/federation-matrix/src/FederationMatrix.ts b/ee/packages/federation-matrix/src/FederationMatrix.ts index a1f89fb5b7d31..74a30356b5208 100644 --- a/ee/packages/federation-matrix/src/FederationMatrix.ts +++ b/ee/packages/federation-matrix/src/FederationMatrix.ts @@ -941,7 +941,7 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS } async canUserAccessFederation(user: IUser): Promise { - if (!(await Authorization.hasPermission(user._id, 'access-federation'))) { + if (!(await Authorization.hasPermission({ _id: user._id, roles: user.roles }, 'access-federation'))) { return false; }