diff --git a/changelog.d/2-features/FS-1002 b/changelog.d/2-features/FS-1002 new file mode 100644 index 0000000000..1976da7b00 --- /dev/null +++ b/changelog.d/2-features/FS-1002 @@ -0,0 +1 @@ +Allow deletion of MLS team conversations diff --git a/libs/wire-api/src/Wire/API/Conversation/Protocol.hs b/libs/wire-api/src/Wire/API/Conversation/Protocol.hs index 492a2ef68b..408f10ecb6 100644 --- a/libs/wire-api/src/Wire/API/Conversation/Protocol.hs +++ b/libs/wire-api/src/Wire/API/Conversation/Protocol.hs @@ -80,7 +80,7 @@ protocolValidAction ProtocolProteus _ = True protocolValidAction (ProtocolMLS _) ConversationJoinTag = False protocolValidAction (ProtocolMLS _) ConversationLeaveTag = True protocolValidAction (ProtocolMLS _) ConversationRemoveMembersTag = False -protocolValidAction (ProtocolMLS _) ConversationDeleteTag = False +protocolValidAction (ProtocolMLS _) ConversationDeleteTag = True protocolValidAction (ProtocolMLS _) _ = True instance ToSchema ProtocolTag where diff --git a/services/galley/test/integration/API/MLS.hs b/services/galley/test/integration/API/MLS.hs index 352c3b356f..aa385e3a64 100644 --- a/services/galley/test/integration/API/MLS.hs +++ b/services/galley/test/integration/API/MLS.hs @@ -91,6 +91,10 @@ tests s = [ test s "fail to create MLS conversation" postMLSConvFail, test s "create MLS conversation" postMLSConvOk ], + testGroup + "Deletion" + [ test s "delete a MLS conversation" testDeleteMLSConv + ], testGroup "Commit" [ test s "add user to a conversation" testAddUser, @@ -1932,3 +1936,22 @@ testFederatedGetGroupInfo = do err @?= ConvNotFound GetGroupInfoResponseState _ -> assertFailure "Unexpected success" + +testDeleteMLSConv :: TestM () +testDeleteMLSConv = do + localDomain <- viewFederationDomain + -- c <- view tsCannon + (tid, aliceUnq, [bobUnq]) <- API.Util.createBindingTeamWithMembers 2 + let alice = Qualified aliceUnq localDomain + bob = Qualified bobUnq localDomain + + runMLSTest $ do + [alice1, bob1] <- traverse createMLSClient [alice, bob] + void $ uploadNewKeyPackage bob1 + + (_, qcnv) <- setupMLSGroup alice1 + commit <- createAddCommit alice1 [bob] + void $ sendAndConsumeCommitBundle commit + + deleteTeamConv tid (qUnqualified qcnv) aliceUnq + !!! statusCode === const 200