From b932cc97bb944cf880b3fbb7060c07159d9060c4 Mon Sep 17 00:00:00 2001 From: Patryk Osmaczko Date: Tue, 17 Oct 2023 21:45:44 +0200 Subject: [PATCH] fix: ensure owners and token masters receive revealed addresses with request to join --- protocol/messenger_communities.go | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/protocol/messenger_communities.go b/protocol/messenger_communities.go index 31f90324c..f65a50200 100644 --- a/protocol/messenger_communities.go +++ b/protocol/messenger_communities.go @@ -1124,19 +1124,33 @@ func (m *Messenger) RequestToJoinCommunity(request *requests.RequestToJoinCommun return nil, err } + // send request to join to privileged members if !community.AcceptRequestToJoinAutomatically() { - // send request to join also to community admins but without revealed addresses + privilegedMembers := community.GetFilteredPrivilegedMembers(map[string]struct{}{}) + + for _, member := range privilegedMembers[protobuf.CommunityMember_ROLE_OWNER] { + _, err := m.sender.SendPrivate(context.Background(), member, &rawMessage) + if err != nil { + return nil, err + } + } + for _, member := range privilegedMembers[protobuf.CommunityMember_ROLE_TOKEN_MASTER] { + _, err := m.sender.SendPrivate(context.Background(), member, &rawMessage) + if err != nil { + return nil, err + } + } + + // don't send revealed addresses to admins requestToJoinProto.RevealedAccounts = make([]*protobuf.RevealedAccount, 0) payload, err = proto.Marshal(requestToJoinProto) if err != nil { return nil, err } - rawMessage.Payload = payload - privilegedMembers := community.GetPrivilegedMembers() - for _, privilegedMember := range privilegedMembers { - _, err := m.sender.SendPrivate(context.Background(), privilegedMember, &rawMessage) + for _, member := range privilegedMembers[protobuf.CommunityMember_ROLE_ADMIN] { + _, err := m.sender.SendPrivate(context.Background(), member, &rawMessage) if err != nil { return nil, err }