• As powerful as possible, as complex as necessary.
  • Posts: 14,278
So, looking at the user banning subsystem
« on March 13th, 2012, 02:40 AM »
I know I blogged about it a long time ago about the things to do with banning, and to be fair a lot of that still applies (the whole deal with whitelisting and blacklisting email addresses/domains and the things concerning blocking IP address ranges)

But it's the per user stuff that intrigues me. I speculated before about a setup whereby you could remove permissions from users based on permissions, and I suggested at the time that you could do it based on warnings, so that 10% was watched but that as you increased the warnings, you could gradually remove more permissions like avatars and so on, before getting as far as post banning.

I struggled to figure out how the interface for that might look, and of course I'm always thinking of interesting new variations that can be carried out on this, as well as integrating Annoy User.[1]

So here's what I'm thinking, allowing for the defaults and so on. The first block would be a set of sliders ranging from 0 to 100 (like the issue warning screen uses) and would be the 'warning level at which...'

* users are watched
* users' avatars are hidden
* users are post moderated
* users are prevented from posting
* users are prevented from accessing the site at all

* max % warning a single moderator can apply per day
* groups allowed to issue a warning that would ban a user from accessing the site at all
* groups allowed to issue per-user punishments

That's it for general configuration. For the user-specific stuff when you're issuing the warning...

* the warning level
* whether the warning level will drop and if so by how much per day/when it will expire (only if the user can issue per-user punishments)
* per user punishments (including when they will expire)
 - no avatar
 - no signature
 - random user annoyances[2]
 - disemvowelling[3]
 - moderation
 - no forum access
 - other to be added through hooks

This seems a bit vague to me but I can't think of anything it's missing >_>
 1. And no, I'm still not going to add IP ranges to that. I never did it when I first made Annoy User, damn sure I'm not going to add it now.
 2. Essentially those from the Annoy User mod.
 3. A subtle but effective technique: go through the user's posts and remove any extraneous vowels. Leave entities and tags intact of course, but vowels in the main content get removed. Good way of annoying users, just need to remember to do it after bbc parsing and just do it on the non HTMLified contents. I already have some code for doing this.
When we unite against a common enemy that attacks our ethos, it nurtures group solidarity. Trolls are sensational, yes, but we keep everyone honest. | Game Memorial