Well, this is similar to what I was trying to do, and got stuck doing, mostly because I'm still quite a PHP novice.
I was thinking of modifying Special:Userrights to allow users with varying degrees of permission to make user group changes. For example, you could allow sysops to assign a few permissions (e.g. rollback, autoconfirmed, or even a "validate" group for stable versioning), but not allowed to revoke them; then, bureaucrats would be able to grant additional privileges, but not be able to revoke a few, if needs warrant. Finally, stewards would be able to change everything.
The way I had been going at it is to declare those in an array in LocalSettings.php. For example, I had:
$wgGroupPermissions['*' ]['validate'] = false; $wgGroupPermissions['*' ]['changeuserprivs'] = false; $wgGroupPermissions['validator' ]['autoconfirmed'] = true; $wgGroupPermissions['validator' ]['validate'] = true; $wgGroupPermissions['sysop' ]['changeuserprivs'] = true; $wgGroupPermissions['bureaucrat' ]['changeuserprivs'] = true;
This would define a "validator" group for stable versioning, and a "changeuserprivs" permission to reach the hacked version of Userrights. Then, I declared an array, which says who can change what:
$wgUserPrivsArray['validate' ] = array('sysop,bureaucrat,steward', 'sysop,bureaucrat,steward'); $wgUserPrivsArray['rollback' ] = array('sysop,bureaucrat,steward', 'bureaucrat,steward'); $wgUserPrivsArray['bot' ] = array('bureaucrat,steward', 'bureaucrat,steward'); $wgUserPrivsArray['sysop' ] = array('bureaucrat,steward', 'steward'); $wgUserPrivsArray['bureaucrat'] = array('bureaucrat,steward', 'steward'); $wgUserPrivsArray['steward' ] = array('steward', 'steward');
The key name is the name of the permission to grant; the first entry in the key array is who is allowed to grant the permission, and the second is who is allowed to revoke it. For example, bureaucrats could be created by other bureaucrats and stewards, but only stewards could revoke bureaucrat rights. Now, this allows for customizing and extending user privileges in a single place.
Titoxd.
-----Original Message----- From: Simetrical [mailto:Simetrical+wikitech@gmail.com] Sent: Tuesday, August 15, 2006 8:15 AM To: Wikimedia developers Subject: Re: [Wikitech-l] [Wikipedia-l] Special:Desysop
On 8/15/06, Simetrical Simetrical+wikitech@gmail.com wrote:
Exactly my thought of a month ago: http://bugs.wikimedia.org/show_bug.cgi?id=6711
Ack, seems this comment is a few hours out-of-date. Multiple threads! Confusing! . . . er, anyway, good job Rotem, now wikis that want them can assign rollback and stuff if Brion's okay with this change. See the two bugs depending on the above.