spreed
spreed copied to clipboard
⛔ Banning users and guests - Overview
How to use GitHub
- Please use the 👍 reaction to show that you are interested into the same feature.
- Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
- Subscribe to receive notifications on status change and new comments.
Overview
- We need an option to prevent guests from rejoining a call/chat/conversation when the moderator removed them #1423
- Similarly there should be an option to block "logged in" users from rejoining open conversations when the moderator removed them.
For 1. we will use an IP based approach, 2. can be solved by recording actor type+id, additionally we will log the moderator performing the ban, a timestamp and allow providing a text note.
Blocking a participant will not allow them to join the conversation. It is okay to be still shown in search results?
Tickets
- [ ] API https://github.com/nextcloud/spreed/issues/12292
- [x] Contract https://github.com/nextcloud/spreed/pull/12259
- [ ] Frontend https://github.com/nextcloud/spreed/issues/12293
- [ ] iOS https://github.com/nextcloud/talk-ios/issues/1650
- [ ] Android https://github.com/nextcloud/talk-android/issues/3898
It is okay to be still shown in search results?
If there is a possibilty to unban person, I'd say yes. Then we can mark them in search results as banned (with a reason e.t.c) and on click perform both: unban + invite. Otherwise it would complicate things to navigate to another tab/list/ whatever we come up with, find needed person, unban it from there, and only then add to a conversation
For 1. we will use an IP based approach, 2. can be solved by recording actor type+id, additionally we will log the moderator performing the ban, a timestamp and allow providing a text note.
What if, a logged-in user gets blocked from an open conversation and then join the conversation as a guest? Shouldn't 1 and 2. be solved both with IP based approach ?
Shouldn't 1 and 2. be solved both with IP based approach ?
Might be a special case, we can have IP block in optional addition when the conversation is public, but since multiple people could be on the same connection (offices, etc.) we need to be able to block individuals instead of IPs.
It is okay to be still shown in search results?
If there is a possibilty to unban person, I'd say yes. Then we can mark them in search results as banned (with a reason e.t.c) and on click perform both: unban + invite. Otherwise it would complicate things to navigate to another tab/list/ whatever we come up with, find needed person, unban it from there, and only then add to a conversation
I think you misunderstood. I was referring to list the room e.g. in open conversations for the blocked user, similarly the name of a conversation the user got blocked from is not "private" I would say.
Of course we need the option to unban attendees/IPs. But this can be burried in the moderation settings of the conversation
How are we naming that feature user-facing (e.g. when showing it in the conversation settings to list all bans)?
-
Banned actors
-> I think we don't haveactor
user-facing right now. Could also sound weird when translated -
Banned users
? -
Banned users and guests
? -
Banned participants
?
Edit: Also do we use the word "Unban" to remove a ban? Or do we go with something like "Remove ban"? I could image that "Unban" might be tricky to translate.
Copying from https://github.com/nextcloud/spreed/issues/12292#issuecomment-2106201684
RequireModeratorParticipant
is also true for 1:1 conversations. Do we allow blocking in 1:1 ?
No, banning is not supported in one-to-one
- Does
internalNote
has a maximum length we need to enforce?
Let's say 4k?
- We do have the information
actorType
andactorId
about the person that did add the ban. Should we also include theactorDisplayname
? Otherwise we can only show theactorId
to the user, which might be weird (e.g. LDAP). Same probably for the banned participant in case we can determine a displayname?
That makes sense
- Do we allow to directly ban an IP? According to the contract, this would be possible by specifying
ip
asactorType
. Since we don't know the IP of any of the participants, I am not sure this is correct? https://github.com/nextcloud/spreed/blob/3cda633a5f019c0f47a88bfc12b6e90e49ec5bee/lib/Controller/BanController.php#L36
That's right, I never thought about this. The plan was to allow banning an IP. But yeah we don't have a record of the guests IP atm so we need to think a bit more about it.
- We do have the information
actorType
andactorId
about the person that did add the ban. Should we also include theactorDisplayname
? Otherwise we can only show theactorId
to the user, which might be weird (e.g. LDAP). Same probably for the banned participant in case we can determine a displayname?That makes sense
^ Just want to bring that up again, as it seems we don't have a displayname for the banned actor. Also CC @skalidindi53
- I just added the displayname in https://github.com/nextcloud/spreed/pull/12735