Let a circle owner delete other participants messages
What needs to be done?
Circles owner are able to throw a user away from their circle. But they should also be able to remove any message that a user has posted and that they consider it shouldn't be. For example a user that is disrespectful to other members or that write messages full of hate.
Technical details
It is possible to delete message on Prosody ? Or just edit the content and shows a "this message has been deleted" instead ? Today, I'm allowed to edit my own messages, but not delete them. I should be able to (add a Remove entry in the edit menu ?).
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Link issues together to show that they're related. Learn more.
Activity
- Maintainer
Cool!! Thank you for this Feature request.
Is it a situation you encountered already or not yet?
- Author Maintainer
It's a feature requested by ESS France.
I haven't had the need for this yet, to delete other people messages, but I've posted once a message on the wrong channel and I wished I could remove it.
- Maintainer
Oh cool! Thanks
- Please register or sign in to reply
- Author Maintainer
@jbpasquier could you also help me to estimate this feature please ?
- Owner
That's an hard one.
Message deletion does not exists in the XMPP universe. Instead, they use a message retraction which we disabled on Hubl because it lead to inconsistencies.
The main difference is that the stanzas archive will still contain your initial message and another stanza which tell to others "Please, retract this message".
While you are loading history, you may experience some "message disappearing" while scrolling down.
Two possible solutions:
- Un-hide this button, it's only a matter of CSS with some parameters to add on
solid-xmpp-chat
. May be a bit tricky because of the shadowroot and the current way we load the CSS. Anyway, roughly, could be done in ~1-2h - Implement something for message deletion. Spotted a proto-xep there: https://legastero.github.io/customxeps/extensions/message-delete.html @MattJ may have a better view.
- Un-hide this button, it's only a matter of CSS with some parameters to add on
- Author Maintainer
- Owner
There are also a pop-up for the confirmation, may be hidden too.
- Author Maintainer
I can't spot where this popup could be. Is it into the
<converse-chat-message>
tag ?Edited by Fabien Quatravaux - Developer
@jbpasquier this feature would be XEP-0425: Message Moderation which is a XEP written by JC and added to Converse.js in 6.0.0.
There is, of course, a Prosody plugin for it: https://modules.prosody.im/mod_muc_moderation (not currently enabled on our server).
- Author Maintainer
OK, thanks @MattJ . Do you think it could be done before the 19th of october, and could you give a working time estimation for this ? Thanks
- Developer
Enabling the server-side module can be done in a matter of minutes. I can't speak for the frontend though. If we're on Converse 6.0.0+ then I'd hope it would just work... but @jbpasquier and @XaviFP would know better than I.
- Maintainer
My understanding is that we are on the latest release of ConverseJS since last Thursday, so in theory... it should just work then.
- Author Maintainer
OK, so we just need to keep an eye on this shadow popup and see where she can be hidden. Is it OK for everybody if I count 3 hours of work for this (I mean prosody server module enabling and front-end checking)?
- Developer
Sounds good to me.
- Maintainer
@XaviFP and @jbpasquier are the bosses for front end estimations.
- Owner
Always a bit afraid when concerning a converse ui thing. Anyway, looks fine to me.
@alexbourlier Do we agree that's something that should be enabled only for ESS and possibly a later upgrade to allow the configuration of this feature per instance?
@MattJ Could we enable/disable plugins per domain easily? In our case, who will be allowed to moderate? Could you make it to be based on the
is_admin
boolean of each members? - Developer
@jbpasquier yes, we can easily enable/disable per domain.
It looks like Prosody currently ignores
is_admin
, but that's an easy fix (existing circles may need to be resaved after that fix). - Maintainer
@jbpasquier Hmmm... No I'd try to make it generic and transferable to other platforms from the get go. Why wouldn't you?
- Owner
Generic & transferable would mean some configuration at some point, I guess that it would look like something on the djangoldp configuration that would change the configuration on Prosody? I'd rather go for that in two-times, keep it on prosody only right now, with this specific module hand-activated for ESS and maybe if more people want it, have a way to configure it from somewhere else.
- Maintainer
Fair enough
- Fabien Quatravaux changed time estimate to 3h
changed time estimate to 3h
- Author Maintainer
I found another trail to follow on about this feature. It seams a lot is already available right in converseJS. I found this document that list available inline commands that allow to moderate chat rooms. It seams that some users in a chat room can have a "moderator" role that give then superpowers to mute or ban other users. It it something we need to deepen ?
The need for ESS France projet would be to be able to moderate the whole room, and not just my own messages. Are you confident that enabling the plugin will be sufficient to give the circle owner moderator super powers ?
- Developer
Yes, all this is supported in Prosody and Converse.js already. In our Prosody integration we currently don't assign anyone moderator privileges, so Converse.js doesn't expose any of this functionality.
Further up the thread we discussed using the
is_admin
account setting for this: #755 (comment 36985) - Author Maintainer
ok, thanks for the clarification @MattJ. So making Prosody care about
is_admin
would result in letting the circle owner having the moderator privileges ? - Developer
Correct.
- Author Maintainer
@jbpasquier I can spend 42 tokens on this ticket from ESS France, and I need to have it integrated for oct. 12th. Who could take this in charge ?
Edited by Fabien Quatravaux - Fabien Quatravaux changed due date to October 12, 2020
changed due date to October 12, 2020
- Matthew Wild mentioned in issue components/solid-xmpp-chat#191 (closed)
mentioned in issue components/solid-xmpp-chat#191 (closed)
- Jean-Baptiste Pasquier added ESS France label
added ESS France label
- Fabien Quatravaux assigned to @MattJ
assigned to @MattJ
- Author Maintainer
@jbpasquier @MattJ We have the GO from ESS France. There is 42 tokens for you @MattJ to develop this feature.
Edited by Fabien Quatravaux - Author Maintainer
@MattJ any update about this feature development ?
- Developer
The server side is done and deployed to the dev server. The frontend part is proving difficult to test as I'm currently only able to access one test account.
@XaviFP may be able to assist, and confirm that everything on the Converse.js side is set up to enable this to work.
- Author Maintainer
@MattJ @XaviFP @jbpasquier any progress on this ? Thanks.