fix: preserve group member user ids

This commit is contained in:
richjohnrambo
2026-08-23 22:29:22 +08:00
parent c89c466387
commit d14942b1a1
2 changed files with 23 additions and 2 deletions
+1 -2
View File
@@ -6064,8 +6064,7 @@ func groupMemberSettingsPayload(sub *types.Subscription) map[string]any {
func groupMemberPayload(sub types.Subscription, mentionable bool) map[string]any {
access := sub.ModeGiven & sub.ModeWant
userID := types.ParseUserId(sub.User)
user := &types.User{ObjHeader: types.ObjHeader{Id: userID.String()}, Public: sub.GetPublic(), Trusted: sub.GetTrusted()}
user := &types.User{ObjHeader: types.ObjHeader{Id: sub.User}, Public: sub.GetPublic(), Trusted: sub.GetTrusted()}
data := userSummaryPayload(user, "")
if private := groupPrivateMap(sub.Private); stringFromAny(private["nickname"]) != "" {
data["group_nickname"] = stringFromAny(private["nickname"])
+22
View File
@@ -2881,6 +2881,28 @@ func TestServeIMGroupMembers(t *testing.T) {
}
}
func TestGroupMemberPayloadUserIDFormats(t *testing.T) {
raw := types.Uid(101)
fromRaw := groupMemberPayload(types.Subscription{
User: raw.String(),
ModeWant: types.ModeJoin,
ModeGiven: types.ModeJoin,
}, true)
if fromRaw["user_id"] != raw.UserId() {
t.Fatalf("raw uid user_id: got %#v, want %s", fromRaw["user_id"], raw.UserId())
}
prefixed := types.Uid(102)
fromPrefixed := groupMemberPayload(types.Subscription{
User: prefixed.UserId(),
ModeWant: types.ModeJoin,
ModeGiven: types.ModeJoin,
}, true)
if fromPrefixed["user_id"] != prefixed.UserId() {
t.Fatalf("prefixed uid user_id: got %#v, want %s", fromPrefixed["user_id"], prefixed.UserId())
}
}
func TestServeIMGroupMemberProfile(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()