ergochat / ergo

A modern IRC server (daemon/ircd) written in Go.
https://ergo.chat/
MIT License
2.21k stars 176 forks source link

Support server-wide mute #2105

Open luxaritas opened 6 months ago

luxaritas commented 6 months ago

Currently, ergo supports the m extban when setting modes in order to prevent a user from sending messages to a particular channel. It would be great if this could also be done server-wide (ie, with UBAN).

Use case: A classroom of misbehaving students joins our website with an embedded multi-channel chat. Our moderators should be able to prevent any users from their IP from speaking (so that students who aren't at fault can at least still read chat, even though we need to take more decisive action to prevent active abuse) without having to do so for each individual channel.

poVoq commented 4 months ago

I agree this would be useful and maybe a /defcon setting to make all channels moderated would be good as well.

Currently defcon does:

DEFCON [level]

The DEFCON system can disable server features at runtime, to mitigate
spam or other hostile activity. It has five levels, which are cumulative
(i.e., level 3 includes all restrictions from level 4 and so on):

5: Normal operation
4: No new account or channel registrations; if Tor is enabled, no new
   unauthenticated connections from Tor
3: All users are +R; no changes to vhosts
2: No new unauthenticated connections; all channels are +R
1: No new connections except from localhost or other trusted IPs

I would propose to add +M for all channels to defcon level 3

+M would have the advantage over +R for channels (as defcon level 2 does) that non-registered users can still join and read channels and figure out what is going on.

slingamn commented 4 months ago

I think this might be too extreme for level 3.

As I've learned from painful experience, without +R, spammers can exploit NICK and PART to spam channels...

poVoq commented 4 months ago

2.5 then?

I think there is a need to balance between anti-abuse measures and still allowing normal non-registered users read-only access so that they can learn about what is going on.

Most clients hide the NICK/PART spam anyways, but yes I have seen that being exploited as well. Isn't there also a channel mode to hide those? That could be combined with the +M defcon mode.