diff options
| author | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-04-03 11:15:16 +0900 |
|---|---|---|
| committer | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-04-03 11:15:16 +0900 |
| commit | 1a3866c4f67fb5a745a7966220286680b810d23b (patch) | |
| tree | 8681a707ff5c852b0c4a432bd7df3fb69b85ebb2 /packages/backend | |
| parent | 🎨 (diff) | |
| download | misskey-1a3866c4f67fb5a745a7966220286680b810d23b.tar.gz misskey-1a3866c4f67fb5a745a7966220286680b810d23b.tar.bz2 misskey-1a3866c4f67fb5a745a7966220286680b810d23b.zip | |
fix(backend/chat): 自分が作ったチャットルームに他人がメッセージを送ったときに未読にならない
Fix #15748
Diffstat (limited to 'packages/backend')
| -rw-r--r-- | packages/backend/src/core/ChatService.ts | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/packages/backend/src/core/ChatService.ts b/packages/backend/src/core/ChatService.ts index df1c384b54..6194f624b1 100644 --- a/packages/backend/src/core/ChatService.ts +++ b/packages/backend/src/core/ChatService.ts @@ -211,9 +211,15 @@ export class ChatService { file?: MiDriveFile | null; uri?: string | null; }): Promise<Packed<'ChatMessageLite'>> { - const memberships = await this.chatRoomMembershipsRepository.findBy({ roomId: toRoom.id }); + const memberships = (await this.chatRoomMembershipsRepository.findBy({ roomId: toRoom.id })).map(m => ({ + userId: m.userId, + isMuted: m.isMuted, + })).concat({ // ownerはmembershipレコードを作らないため + userId: toRoom.ownerId, + isMuted: false, + }); - if (toRoom.ownerId !== fromUser.id && !memberships.some(member => member.userId === fromUser.id)) { + if (!memberships.some(member => member.userId === fromUser.id)) { throw new Error('you are not a member of the room'); } |