- commit
- e3a6c7a010c9e002ddf73a11cf22a906ae3b4240
- parent
- 5ba18cd7ac8770e9d02a91f3e97719cd362c9b95
- author
- Dami <dami.etoile@gmail.com>
| M | internal/ | 18 | ++++++++++++++++-- |
@@ -32,6 +32,13 @@ type roomSummary struct {
3232 Role string `json:"role"`3333 }3434 35+// roomMemberView is a room member with the relay-level marker a page needs:36+// whether the member is an agent identity.37+type roomMemberView struct {38+ community.RoomMember39+ Agent bool `json:"agent,omitempty"`40+}41+3542 func roomBrowseMethod(method string) bool {3643 return method == "browserooms" || method == "browseroom" || method == "browsethread"3744 }@@ -127,12 +134,19 @@ func (t *Tenant) browseRoom(ctx context.Context, actor string, q roomBrowseReque
127134 if err != nil {128135 return nil, err129136 }130- members := []community.RoomMember{}137+ members := []roomMemberView{}131138 if role != "" || t.Policy().DirectoryPublic {132- members, err = t.community.RoomMembers(ctx, room.ID)139+ rows, err := t.community.RoomMembers(ctx, room.ID)133140 if err != nil {134141 return nil, err135142 }143+ for _, row := range rows {144+ tenantRole, err := t.community.Role(ctx, row.PubKey)145+ if err != nil {146+ return nil, err147+ }148+ members = append(members, roomMemberView{RoomMember: row, Agent: tenantRole == "agent"})149+ }136150 }137151 messages, next, err := t.roomMessages(ctx, actor, event.Filter{Kinds: roomMessageKinds, Tags: map[string][]string{"h": {room.ID}}}, cursor, q.Limit)138152 if err != nil {