I was recently thinking about how to improve the blocking system. I thought in a bit-flag for each action so a finer block could be applied. The list which came to my mind is:
*Edit pages *Create accounts *New pages *Move pages *Upload files *Patrol edits *Autoconfirmation (accounts with this block would behave like non-confirmed accounts) *Block users with that ip to edit *Will other users with the same ip get blocked? (autoblocks, only applies to blocks to usernames)
I didn't added sysop actions as they use to need a special group so the solution would be desysopping and not block deleting ability, but they could have a place in the flag too.
The SpecialBlock would present a combo or a serie of checkboxes, or-masked by the server to get the restriction. A special 'Complete' option (value -1) would behave as until now.
Of course your interface seems nicer and less complicated, but this kind of feature could be prepared on the schema update, although not available for use.
Some combinations are probably useless (block user from edit but allow move pages ? ) and i have only heard requesting bug 550 and upload block but i think this more complete.
Platonides