From 43ef5b1a35736a5ce617bc838e9799b91e088dc0 Mon Sep 17 00:00:00 2001 From: neketka Date: Wed, 24 Apr 2024 15:59:35 -0400 Subject: [PATCH 1/3] Mark potential locations of bug --- server/src/client/client.service.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/src/client/client.service.ts b/server/src/client/client.service.ts index 539bd642..de95ad1e 100644 --- a/server/src/client/client.service.ts +++ b/server/src/client/client.service.ts @@ -104,10 +104,13 @@ export class ClientService { this.gateway.server.to(target).emit(event, dto); } else { this.gateway.server.in(target).socketsJoin(resource.id); + // ^^^^ possible cause #2 // Find all targeted users const users = await this.getAffectedUsers(target); + // ^^^^ possible cause #1 + for (const user of users) { const ability = this.abilityFactory.createForUser(user); const accessibleObj = await this.abilityFactory.filterInaccessible( From cb4f3b2e24cdfb8b2d8a0b150347a4a0294ab6e2 Mon Sep 17 00:00:00 2001 From: neketka Date: Wed, 24 Apr 2024 16:40:14 -0400 Subject: [PATCH 2/3] Attempt fix --- server/src/user/user.gateway.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/src/user/user.gateway.ts b/server/src/user/user.gateway.ts index b1292c2b..4ac4779c 100644 --- a/server/src/user/user.gateway.ts +++ b/server/src/user/user.gateway.ts @@ -76,7 +76,12 @@ export class UserGateway { @CallingUser() user: User, @MessageBody() data: RequestAllUserDataDto, ) { - const users = await this.userService.getAllUserData(); + let users: User[] = []; + if (!user.administrator) { + users = [user]; + } else { + users = await this.userService.getAllUserData(); + } await Promise.all( users.map( From 4f5516dabf8b01b26e6272bd9feff6c57657fc7f Mon Sep 17 00:00:00 2001 From: neketka Date: Wed, 24 Apr 2024 16:55:34 -0400 Subject: [PATCH 3/3] Remove comments --- server/src/client/client.service.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/server/src/client/client.service.ts b/server/src/client/client.service.ts index de95ad1e..f03f53af 100644 --- a/server/src/client/client.service.ts +++ b/server/src/client/client.service.ts @@ -104,13 +104,9 @@ export class ClientService { this.gateway.server.to(target).emit(event, dto); } else { this.gateway.server.in(target).socketsJoin(resource.id); - // ^^^^ possible cause #2 - // Find all targeted users const users = await this.getAffectedUsers(target); - // ^^^^ possible cause #1 - for (const user of users) { const ability = this.abilityFactory.createForUser(user); const accessibleObj = await this.abilityFactory.filterInaccessible(