From bca6a2ffdede5bf8a0b338db08f09c9ecf9b840c Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Wed, 24 Dec 2025 21:38:55 +0800 Subject: [PATCH] :bug: Fix list members of chat and realm didn't show invite --- DysonNetwork.Pass/Realm/RealmController.cs | 3 ++- DysonNetwork.Sphere/Chat/ChatRoomController.cs | 11 +++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/DysonNetwork.Pass/Realm/RealmController.cs b/DysonNetwork.Pass/Realm/RealmController.cs index 40c8ae3..4857a8d 100644 --- a/DysonNetwork.Pass/Realm/RealmController.cs +++ b/DysonNetwork.Pass/Realm/RealmController.cs @@ -242,9 +242,10 @@ public class RealmController( return StatusCode(403, "You must be a member to view this realm's members."); } + // The query should include the unjoined ones, to show the invites. var query = db.RealmMembers .Where(m => m.RealmId == realm.Id) - .Where(m => m.JoinedAt != null && m.LeaveAt == null); + .Where(m => m.LeaveAt == null); if (withStatus) { diff --git a/DysonNetwork.Sphere/Chat/ChatRoomController.cs b/DysonNetwork.Sphere/Chat/ChatRoomController.cs index 7f2986d..706a25e 100644 --- a/DysonNetwork.Sphere/Chat/ChatRoomController.cs +++ b/DysonNetwork.Sphere/Chat/ChatRoomController.cs @@ -525,13 +525,15 @@ public class ChatRoomController( } [HttpGet("{roomId:guid}/members")] - public async Task>> ListMembers(Guid roomId, + public async Task>> ListMembers( + Guid roomId, [FromQuery] int take = 20, [FromQuery] int offset = 0, [FromQuery] bool withStatus = false ) { var currentUser = HttpContext.Items["CurrentUser"] as Account; + Guid? accountId = currentUser is not null ? Guid.Parse(currentUser.Id) : null; var room = await db.ChatRooms .FirstOrDefaultAsync(r => r.Id == roomId); @@ -539,16 +541,17 @@ public class ChatRoomController( if (!room.IsPublic) { - if (currentUser is null) return Unauthorized(); + if (accountId is null) return Unauthorized(); var member = await db.ChatMembers - .Where(m => m.ChatRoomId == roomId && m.AccountId == Guid.Parse(currentUser.Id) && m.LeaveAt == null) + .Where(m => m.ChatRoomId == roomId && m.AccountId == accountId && m.LeaveAt == null) .FirstOrDefaultAsync(); if (member is null) return StatusCode(403, "You need to be a member to see members of private chat room."); } + // The query should include the unjoined ones, to show the invites. var query = db.ChatMembers .Where(m => m.ChatRoomId == roomId) - .Where(m => m.JoinedAt != null && m.LeaveAt == null); + .Where(m => m.LeaveAt == null); if (withStatus) {