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

Add the ability to block users. #20

Open
FrazerSeymour opened this issue Feb 19, 2018 · 3 comments
Open

Add the ability to block users. #20

FrazerSeymour opened this issue Feb 19, 2018 · 3 comments

Comments

@FrazerSeymour
Copy link
Contributor

Since the meshIM default behaviour is to allow anyone to message anyone using the app, this leaves the app open to spam/harassment/what have you. We need the ability to block a user from messaging you.

There are some mockups for this, but still some product decisions that need to be made about what happens when we block someone. Do we delete messages on either side? Can a blocked user still see the messages sent before the block or does the user that block them disappear from their conversations list? Does the blocked user disappear from the message list of the user that blocked them?

If the blocked user can see the past messages, do they get a different UI that tells them they were blocked? Or do we just show the blocking user as perpetually offline and not send any updates about their username/avatar?

On a technical side, do we block all messages going to the blocking user from the blocked user (e.g. username changes)? Same deal from blocking to blocked? Or are username/pictures assumed to be public and they get those updates just not online status?

@JMortemore
Copy link

Action of blocking a user

  • Can be done from a conversation. Overflow menu is shown in the header, with the options "Mute", "Block", "Delete conversation".
  • Nice to have: blocking can be done as a secondary action on the In Range screen which is revealed when a row is swiped to the left or right.
  • When block is tapped, we show a snackbar in response. Body text: User blocked, Undo button action.

Consequences for Blocker

  • Conversation is removed from the messages screen.
  • Blocked users will never appear in range.
  • Users can be unblocked from the account screen, through the blocked user tab. This lists all blocked user - tap to show option to unblock.

Consequences for Blockee

  • besides dealing with the heartbreak and loss of being left alone, to soften the blow a little the blockee can still see the conversation history, and last avatar and username set. The person who has blocked them appears permanently unavailable, and any messages that they send are stuck pending delivery.

@compscidr
Copy link
Contributor

compscidr commented Feb 21, 2018

From a network pespective - it would be interesting if the block action actually sent something to the blockees phone that actually prevented them from sending messages out into the mesh in the first place. Otherwise, the blockee could still conceivably spam into the mesh and degrade the mesh performance if it gets filtered on the blocker side. Since this is open source, and someone could conceivably make a version that doesn't behave this way, it would also probably be prudent to still filter any messages on the blocker side as well.

@FrazerSeymour
Copy link
Contributor Author

Yeah we were thinking that, set "blocked" in the blockee's database somehow as well so stuff just never sends either. That said their database would reset if they say uninstall/reinstall the app, so they could still conceivably try to/inadvertantly flood the network.

Maybe we can have a check for "if we receive a packet from a blocked user, remind them they're blocked" so we cut them off if they try something sneaky.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants