Question
Hm, that's complicated, the easiest way would be to check the blocker's user rights, but if the blocker is demoted sysops will no longer be prevented from changing the block. I'll see if I can find a better solution.
Btw, I've written an extension before that can limit the length of a block a certain user group can give out (e.g. sysops would only be able to block for 30 minutes max, and wouldn't be able to block without allowing user talk page editing). It might be a good idea to install that if we're keeping the sysops can make sysops policy.
Yah I ran into that extension's code while googling around for the block ip hook. Was thinking about it.
My idea was to get the user name being blocked and use that to look up the block log and if there was a block in place on that user check who the block as by. If the old block was by a moderator then the block could only be changed by a user in the mod group.
I guess could always add a check mark box option for mods to "prevent unblocking" that gets saved with the block.
That's probably a good idea, otherwise, mods couldn't engage in joke blocks, because then people couldn't unblock themselves.
Yeah, but that would probably be messy, it would require changing the database schema and hacking MW
Maybe add a "mod block" thing to the vandal brake?
Suggestion - why not open an ER in the Mediawiki bug tracker? I think what you are talking about here is an interesting use case, which may be of interest beyond just RW. Even if the Mediawiki developers don't do anything, if you make a change you could always work on getting it upstream (then you won't have to maintain it anymore...)
Ok, here's an idea: If the blocked user's user page is protected at the mod level, their block can only be changed by a mod. It's a hack, but it's pretty easy to implement.
Dammit, there's no hook for unblocking, so I can prevent changing blocks, but not unblocking. I've got to go now, I'll get back to this later.
Well shit, I was hoping unblock was treated like a change block....