From 3452eb72a81327b2f7e339c9cd292cb1a1ac44d3 Mon Sep 17 00:00:00 2001 From: Patryk Osmaczko Date: Wed, 25 Oct 2023 15:22:12 +0200 Subject: [PATCH] refactor: remove community invitation only access --- protocol/communities/community.go | 4 - protocol/communities/community_test.go | 100 +------------------------ protocol/communities/manager.go | 2 +- protocol/communities_messenger_test.go | 1 - 4 files changed, 5 insertions(+), 102 deletions(-) diff --git a/protocol/communities/community.go b/protocol/communities/community.go index 4809a2411..6478cb2b5 100644 --- a/protocol/communities/community.go +++ b/protocol/communities/community.go @@ -1229,10 +1229,6 @@ func (o *Community) ManualAccept() bool { return o.config.CommunityDescription.Permissions.Access == protobuf.CommunityPermissions_MANUAL_ACCEPT } -func (o *Community) InvitationOnly() bool { - return o.config.CommunityDescription.Permissions.Access == protobuf.CommunityPermissions_INVITATION_ONLY -} - func (o *Community) AutoAccept() bool { // We no longer have the notion of "no membership", but for historical reasons // we use `NO_MEMBERSHIP` to determine wether requests to join should be automatically diff --git a/protocol/communities/community_test.go b/protocol/communities/community_test.go index 1bcb50677..57bfcd99b 100644 --- a/protocol/communities/community_test.go +++ b/protocol/communities/community_test.go @@ -391,13 +391,6 @@ func (s *CommunitySuite) TestValidateRequestToJoin() { request: request, err: ErrNotAdmin, }, - { - name: "invitation-only", - config: s.configInvitationOnly(), - signer: signer, - request: request, - err: ErrCantRequestAccess, - }, { name: "ens-only org and missing ens", config: s.configENSOnly(), @@ -429,14 +422,6 @@ func (s *CommunitySuite) TestValidateRequestToJoin() { request: requestWithChatID, err: ErrCantRequestAccess, }, - // NO_MEMBERSHIP-INVITATION_ONLY = error as it's invitation only - { - name: "no-membership org with no-membeship chat", - config: s.configNoMembershipOrgInvitationOnlyChat(), - signer: signer, - request: requestWithChatID, - err: ErrCantRequestAccess, - }, // NO_MEMBERSHIP-ON_REQUEST = this is a valid case { name: "no-membership org with on-request chat", @@ -444,30 +429,6 @@ func (s *CommunitySuite) TestValidateRequestToJoin() { signer: signer, request: requestWithChatID, }, - // INVITATION_ONLY-INVITATION_ONLY error as it's invitation only - { - name: "invitation-only org with invitation-only chat", - config: s.configInvitationOnlyOrgInvitationOnlyChat(), - signer: signer, - request: requestWithChatID, - err: ErrCantRequestAccess, - }, - // ON_REQUEST-INVITATION_ONLY error as it's invitation only - { - name: "on-request org with invitation-only chat", - config: s.configOnRequestOrgInvitationOnlyChat(), - signer: signer, - request: requestWithChatID, - err: ErrCantRequestAccess, - }, - // ON_REQUEST-INVITATION_ONLY error as it's invitation only - { - name: "on-request org with invitation-only chat", - config: s.configOnRequestOrgInvitationOnlyChat(), - signer: signer, - request: requestWithChatID, - err: ErrCantRequestAccess, - }, // ON_REQUEST-ON_REQUEST success { name: "on-request org with on-request chat", @@ -513,32 +474,6 @@ func (s *CommunitySuite) TestCanPost() { member: notMember, canPost: false, }, - { - name: "no-membership org with invitation only chat-not-a-member", - config: s.configNoMembershipOrgInvitationOnlyChat(), - member: notMember, - canPost: false, - }, - { - name: "no-membership org with invitation only chat member", - config: s.configNoMembershipOrgInvitationOnlyChat(), - member: member, - canPost: true, - }, - { - name: "no-membership org with invitation only chat-not-a-member valid grant", - config: s.configNoMembershipOrgInvitationOnlyChat(), - member: notMember, - canPost: false, - grant: validGrant, - }, - { - name: "no-membership org with invitation only chat-not-a-member invalid grant", - config: s.configNoMembershipOrgInvitationOnlyChat(), - member: notMember, - canPost: false, - grant: invalidGrant, - }, { name: "membership org with no-membership chat-not-a-member", config: s.configOnRequestOrgNoMembershipChat(), @@ -671,7 +606,7 @@ func (s *CommunitySuite) TestHandleCommunityDescription() { changes.MembersAdded[s.member3Key] = &protobuf.CommunityMember{} changes.ChatsAdded[testChatID2] = &protobuf.CommunityChat{ Identity: &protobuf.ChatIdentity{DisplayName: "added-chat", Description: "description"}, - Permissions: &protobuf.CommunityPermissions{Access: protobuf.CommunityPermissions_INVITATION_ONLY}, + Permissions: &protobuf.CommunityPermissions{Access: protobuf.CommunityPermissions_MANUAL_ACCEPT}, Members: make(map[string]*protobuf.CommunityMember)} changes.ChatsAdded[testChatID2].Members[s.member3Key] = &protobuf.CommunityMember{} @@ -848,12 +783,6 @@ func (s *CommunitySuite) configOnRequest() Config { return s.newConfig(s.identity, description) } -func (s *CommunitySuite) configInvitationOnly() Config { - description := s.emptyCommunityDescription() - description.Permissions.Access = protobuf.CommunityPermissions_INVITATION_ONLY - return s.newConfig(s.identity, description) -} - func (s *CommunitySuite) configNoMembershipOrgNoMembershipChat() Config { description := s.emptyCommunityDescriptionWithChat() description.Permissions.Access = protobuf.CommunityPermissions_AUTO_ACCEPT @@ -861,20 +790,6 @@ func (s *CommunitySuite) configNoMembershipOrgNoMembershipChat() Config { return s.newConfig(s.identity, description) } -func (s *CommunitySuite) configNoMembershipOrgInvitationOnlyChat() Config { - description := s.emptyCommunityDescriptionWithChat() - description.Permissions.Access = protobuf.CommunityPermissions_AUTO_ACCEPT - description.Chats[testChatID1].Permissions.Access = protobuf.CommunityPermissions_INVITATION_ONLY - return s.newConfig(s.identity, description) -} - -func (s *CommunitySuite) configInvitationOnlyOrgInvitationOnlyChat() Config { - description := s.emptyCommunityDescriptionWithChat() - description.Permissions.Access = protobuf.CommunityPermissions_INVITATION_ONLY - description.Chats[testChatID1].Permissions.Access = protobuf.CommunityPermissions_INVITATION_ONLY - return s.newConfig(s.identity, description) -} - func (s *CommunitySuite) configNoMembershipOrgOnRequestChat() Config { description := s.emptyCommunityDescriptionWithChat() description.Permissions.Access = protobuf.CommunityPermissions_AUTO_ACCEPT @@ -889,13 +804,6 @@ func (s *CommunitySuite) configOnRequestOrgOnRequestChat() Config { return s.newConfig(s.identity, description) } -func (s *CommunitySuite) configOnRequestOrgInvitationOnlyChat() Config { - description := s.emptyCommunityDescriptionWithChat() - description.Permissions.Access = protobuf.CommunityPermissions_MANUAL_ACCEPT - description.Chats[testChatID1].Permissions.Access = protobuf.CommunityPermissions_INVITATION_ONLY - return s.newConfig(s.identity, description) -} - func (s *CommunitySuite) configOnRequestOrgNoMembershipChat() Config { description := s.emptyCommunityDescriptionWithChat() description.Permissions.Access = protobuf.CommunityPermissions_MANUAL_ACCEPT @@ -919,12 +827,12 @@ func (s *CommunitySuite) configENSOnly() Config { } func (s *CommunitySuite) config() Config { - config := s.configOnRequestOrgInvitationOnlyChat() + config := s.configOnRequestOrgOnRequestChat() return config } func (s *CommunitySuite) buildCommunityDescription() *protobuf.CommunityDescription { - config := s.configOnRequestOrgInvitationOnlyChat() + config := s.configOnRequestOrgOnRequestChat() desc := config.CommunityDescription desc.Clock = 1 desc.Members = make(map[string]*protobuf.CommunityMember) @@ -1016,7 +924,7 @@ func (s *CommunitySuite) addedChatCommunityDescription(org *Community) *protobuf description.Members[s.member3Key] = &protobuf.CommunityMember{} description.Chats[testChatID2] = &protobuf.CommunityChat{ Identity: &protobuf.ChatIdentity{DisplayName: "added-chat", Description: "description"}, - Permissions: &protobuf.CommunityPermissions{Access: protobuf.CommunityPermissions_INVITATION_ONLY}, + Permissions: &protobuf.CommunityPermissions{Access: protobuf.CommunityPermissions_MANUAL_ACCEPT}, Members: make(map[string]*protobuf.CommunityMember)} description.Chats[testChatID2].Members[s.member3Key] = &protobuf.CommunityMember{} diff --git a/protocol/communities/manager.go b/protocol/communities/manager.go index 71a255c7e..d61642b97 100644 --- a/protocol/communities/manager.go +++ b/protocol/communities/manager.go @@ -1672,7 +1672,7 @@ func (m *Manager) handleCommunityDescriptionMessageCommon(community *Community, } // If the community require membership, we set whether we should leave/join the community after a state change - if community.InvitationOnly() || community.ManualAccept() || community.AutoAccept() { + if community.ManualAccept() || community.AutoAccept() { if changes.HasNewMember(pkString) { hasPendingRequest, err := m.persistence.HasPendingRequestsToJoinForUserAndCommunity(pkString, changes.Community.ID()) if err != nil { diff --git a/protocol/communities_messenger_test.go b/protocol/communities_messenger_test.go index 0adf1df23..867090d2d 100644 --- a/protocol/communities_messenger_test.go +++ b/protocol/communities_messenger_test.go @@ -2450,7 +2450,6 @@ func (s *MessengerCommunitiesSuite) TestSyncCommunity() { s.Equal(newCommunity.Muted(), tnc.Muted()) s.Equal(newCommunity.Joined(), tnc.Joined()) s.Equal(newCommunity.Spectated(), tnc.Spectated()) - s.Equal(newCommunity.InvitationOnly(), tnc.InvitationOnly()) s.True(newCommunity.IsControlNode()) s.True(newCommunity.IsOwner())