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

Kick / Ban #38

Open
jbalash opened this issue Apr 22, 2021 · 7 comments
Open

Kick / Ban #38

jbalash opened this issue Apr 22, 2021 · 7 comments
Assignees
Labels
enhancement New feature or request

Comments

@jbalash
Copy link

jbalash commented Apr 22, 2021

Similar in many other platforms, the owner of a room and kick / ban people from the scene. While I know this might be difficult, I propose a program that stops a user (by user name) from moving, talking, chatting, video, etc (simply freezing them out). I feel as though the sheer boredom might detour someone from doing something stupid.

@mwfarb mwfarb added the enhancement New feature or request label Apr 23, 2021
@hi-liang
Copy link
Member

hi-liang commented May 4, 2021

This might require a change to mosquitto itself

Mosquitto comes with two functions that might facilitate this for plugins:

mosquitto_kick_client_by_clientid
mosquitto_kick_client_by_username

The latter is used only by the dynamic security plugin (more docs) which may likely pose a compatibility issue w/ mosquitto-jwt-auth ...though on other hand it's not an auth_plugin 🤔 .... wonder if we left everything else as default in dynamic-security config, if we could use this to only kick and ban users. Since we can't really revoke JWT, and mosquitto-jwt-auth has no blacklist mechanism

@mwfarb mwfarb self-assigned this May 5, 2021
@mwfarb
Copy link
Contributor

mwfarb commented May 5, 2021

I like that plugin! It's probably one of cleanest ways to do this, but you're right it will take time to look into integrating both plugins. I'm working on sending a message that will convince the client to logout.

@mwfarb
Copy link
Contributor

mwfarb commented May 6, 2021

Kick implemented for Owners and Editors: arenaxr/arena-web-core#284.

@mwfarb
Copy link
Contributor

mwfarb commented May 6, 2021

To implement Ban, it'll take a few more days. Essentially, we add to the user database Scene Permissions a Banned Users list. I think the right way to do this is to use the REST GET/PUT operations of the scene permissions table from the main scene Chat JavaScript. However, it looks like the default ManyToManyField used for Editor/Banned lists in the database exports the user list enumerated key ID rather than the username, which the website cannot use. So some work to enable GET/PUT operations to use the usernames rather than enumerated keys is needed.

@mwfarb
Copy link
Contributor

mwfarb commented May 6, 2021

Progress:

  • Kick
  • Ban

@mwfarb
Copy link
Contributor

mwfarb commented May 8, 2021

Remove User confirm could have 5 options in increasing severity, each one including properties of the former:

  • Cancel.
  • Kick out of this scene.
  • Ban user from this scene.
  • Ban user from this namespace.
  • Ban user from all of arena.

@mwfarb
Copy link
Contributor

mwfarb commented Sep 24, 2021

Try to integrate Jitsi conference controls where possible:

  • KICKED - notifies that user has been kicked from the conference. (parameters - actorParticipant(JitsiParticipant), reason(string))
  • PARTICIPANT_KICKED - notifies that participant has been kicked from the conference by another participant. (parameters actorParticipant(JitsiParticipant), kickedParticipant(JitsiParticipant), reason(string))
  • https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-ljm-api

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants