Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WPB-6144] Prevent MLS one-to-one messaging for a blocking user #3889

Merged
merged 28 commits into from
Feb 22, 2024

Conversation

mdimjasevic
Copy link
Contributor

@mdimjasevic mdimjasevic commented Feb 14, 2024

If a user blocked another user, the blocking user would still get messages from the blocked user via the MLS one-to-one conversation. This PR fixes the bug.

Tracked by https://wearezeta.atlassian.net/browse/WPB-6144.

Checklist

  • Add a new entry in an appropriate subdirectory of changelog.d
  • Read and follow the PR guidelines

@mdimjasevic mdimjasevic marked this pull request as draft February 14, 2024 11:04
@mdimjasevic mdimjasevic force-pushed the wpb-6144/1-to-1-messaging-by-blocked-user branch from f83d610 to 0d0d823 Compare February 14, 2024 13:11
@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Feb 14, 2024
@mdimjasevic mdimjasevic force-pushed the wpb-6144/1-to-1-messaging-by-blocked-user branch 2 times, most recently from 34ad309 to 117e81b Compare February 14, 2024 16:01
@mdimjasevic mdimjasevic force-pushed the wpb-6144/1-to-1-messaging-by-blocked-user branch from a23c84c to 84e531c Compare February 16, 2024 09:35
@akshaymankar akshaymankar force-pushed the wpb-6144/1-to-1-messaging-by-blocked-user branch 2 times, most recently from 0e7cade to eac9f2a Compare February 19, 2024 15:00
Brig can determine this ID based on protocol of the conversation or read it from
the DB. Inventing this in galley causes more trouble for having two One2One
convs for proteus and mls.
@akshaymankar akshaymankar force-pushed the wpb-6144/1-to-1-messaging-by-blocked-user branch from eac9f2a to 5820f58 Compare February 19, 2024 18:38
@mdimjasevic mdimjasevic marked this pull request as ready for review February 21, 2024 13:47
@mdimjasevic mdimjasevic changed the title [WPB-6144] Prevent MLS one-to-one messaging for a blocked user [WPB-6144] Prevent MLS one-to-one messaging for a blocking user Feb 22, 2024
Copy link
Member

@akshaymankar akshaymankar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@mdimjasevic mdimjasevic merged commit 769b68f into develop Feb 22, 2024
8 checks passed
@mdimjasevic mdimjasevic deleted the wpb-6144/1-to-1-messaging-by-blocked-user branch February 22, 2024 14:27
mdimjasevic added a commit that referenced this pull request Feb 26, 2024
* Test: no MLS 1-to-1 when a connection is blocked

* Test: a test with expected behavior after blocking the connection

* Check if sending a msg to 1-to-1 and not connected

* Add a changelog

* WIP: Debugging a test failure

* Update the confirming test

* Revert "Check if sending a msg to 1-to-1 and not connected"

This reverts commit c4af150.

* WIP: generalise the Update.blockConv handler

* Connections: Also block MLS one2one conv when blocking conn

* Test: Parameterise over One2OneScenario

* Add the missing connection ID in an internal endpoint

* Wrap a function comment for readability

* Introduce a Galley internal endpoint: blocking a qualified conversation

* WIP: Check if an MLS 1-1 conv exists before blocking

What is left to do is to make this check work for an MLS 1-1 conv that
can be remote

* Make upsertOne2OneConv always take a Conv ID

Brig can determine this ID based on protocol of the conversation or read it from
the DB. Inventing this in galley causes more trouble for having two One2One
convs for proteus and mls.

* WIP: Remove user from 1:1 MLS conv when they block someone

* WIP: Remove mls clients on connection block

* fixup! WIP: Remove mls clients on connection block

* Make sure 1-1 conv is established before updating

* Finalise the bug-confirming test

* Remove debugging output from application code

* Fix a changelog

* Remove redundant constraints

* Properly check if an MLS 1-1 conversation exists before blocking it

* Remove more of unused code

* Remove an unused connection ID in an internal Galley endpoint for blocking a conv

---------

Co-authored-by: Akshay Mankar <akshay@wire.com>
mdimjasevic added a commit that referenced this pull request Mar 5, 2024
* Test: no MLS 1-to-1 when a connection is blocked

* Test: a test with expected behavior after blocking the connection

* Check if sending a msg to 1-to-1 and not connected

* Add a changelog

* WIP: Debugging a test failure

* Update the confirming test

* Revert "Check if sending a msg to 1-to-1 and not connected"

This reverts commit c4af150.

* WIP: generalise the Update.blockConv handler

* Connections: Also block MLS one2one conv when blocking conn

* Test: Parameterise over One2OneScenario

* Add the missing connection ID in an internal endpoint

* Wrap a function comment for readability

* Introduce a Galley internal endpoint: blocking a qualified conversation

* WIP: Check if an MLS 1-1 conv exists before blocking

What is left to do is to make this check work for an MLS 1-1 conv that
can be remote

* Make upsertOne2OneConv always take a Conv ID

Brig can determine this ID based on protocol of the conversation or read it from
the DB. Inventing this in galley causes more trouble for having two One2One
convs for proteus and mls.

* WIP: Remove user from 1:1 MLS conv when they block someone

* WIP: Remove mls clients on connection block

* fixup! WIP: Remove mls clients on connection block

* Make sure 1-1 conv is established before updating

* Finalise the bug-confirming test

* Remove debugging output from application code

* Fix a changelog

* Remove redundant constraints

* Properly check if an MLS 1-1 conversation exists before blocking it

* Remove more of unused code

* Remove an unused connection ID in an internal Galley endpoint for blocking a conv

---------

Co-authored-by: Akshay Mankar <akshay@wire.com>
mdimjasevic added a commit that referenced this pull request Mar 11, 2024
…2024`) - no dependencies on the notification subsystem (#3922)

* [WPB-6144] Prevent MLS one-to-one messaging for a blocking user (#3889)

Co-authored-by: Akshay Mankar <akshay@wire.com>
Co-authored-by: Igor Ranieri Elland <54423+elland@users.noreply.github.com>
@echoes-hq echoes-hq bot added the echoes: unplanned Any work item that isn’t part of the product or technical roadmap. label Jul 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
echoes: unplanned Any work item that isn’t part of the product or technical roadmap. ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants