Jump to content

Manuel:Créer une hiérarchie des bureaucrates

From mediawiki.org
This page is a translated version of the page Manual:Establishing a hierarchy of bureaucrats and the translation is 100% complete.

Il peut être souhaitable de posséder une hiérarchie des bureaucrates. De cette façon, si l'un d'eux devient escroc, il ne pourra pas retirer les droits utilisateur de tous les autres bureaucrates, à moins qu'il n'ait le plus haut rang. Les bureaucrates peuvent donc être placés à différents rangs selon le niveau de confiance qui leur est attribué.

Classement

Dans ce système, les rangs de la première colonne ont les pouvoirs de la seconde colonne.

Un ... peut ajouter ou supprimer des ...
Colonel Majors, Captains, Lieutenants, Sysops
Major Captains, Lieutenants, Sysops
Captain Lieutenants, Sysops
Lieutenant Sysops
Sysop

Principe

Particulièrement sur les wikis qui ont des standards faibles pour promouvoir les utilisateurs en sysop (par exemple sur certains wikis les utilisateurs peuvent devenir sysop en quelques jours ou quelques heures après avoir créé un compte), certains utilisateurs peuvent devenir assez dignes de confiance pour être autorisés à ajouter (ou supprimer) des droits utilisateur aux sysops (tant que ces actions sur les droits utilisateur sont sujet à être annulés par d'autres bureaucrates, et tant qu'il y a à leur côté, des bureaucrates de niveau supérieur pour les dégrader s'ils abusent de leurs pouvoirs), mais pas suffisamment dignes de confiance pour avoir la puissance d'assurer un contrôle total. Ceci est particulièrement important dans les cas où le propriétaire du site peut être absent durant des périodes de temps assez longues, et ne pas pouvoir accéder au serveur pour contrecarrer le coup d'état du bureaucrate.

Options alternatives

Une alternative à cette approche est d'établir un système tel que celui de Wikipedia où les bureaucrates peuvent ajouter des utilisateurs aux groupes, mais uniquement les stewards peuvent les enlever des groupes. Un inconvénient à cela est qu'un bureaucrate peu loyal pourrait encore causer des ravages en ajoutant un grand nombre de sysop inappropriés, ou causer des dégâts en prenant un grand numéro d'actions peu convenables, avant qu'un steward n'ait la chance d'intervenir. Sur un grand site comme Wikipedia qui a des normes élevées pour promouvoir les utilisateurs au statut de superutilisateur et de nombreux stewards dont chacun est supposé disponible à tout moment, ce n'est pas un tel problème. Sur des sites plus petits, ou sur ceux qui ont des normes plus faibles pour promouvoir les utilisateurs au statut de superutilisateur, cela pourrait poser problème. Une hiérarchie permet une calibration plus précise des droits des utilisateurs en fonction de leur fiabilité et permet de s'assurer que chaque niveau de superutilisateurs dispose d'un grand nombre de contrôles, sans accorder à trop de personnes des pouvoirs étendus et non contrôlés sur le wiki.

Procédure

Il y a quelques subtilités comprises dans ce processus. D'une part, il ne suffit pas d'ajouter simplement les différents niveaux de bureaucrates à $wgAddGroups et $wgRemoveGroups  ; une autorisation doit également être définie à l'aide de $wgGroupPermissions avant qu'ils ne soient affichés dans Special:UserRights. Dans cet exemple, les officiers reçoivent tous les pouvoirs de sysops (tel que défini par la configuration par défaut) et les quatre niveaux de bureaucrates sont les colonnels, les majors, les capitaines et les lieutenants. En outre, le code doit être placé à la fin de LocalSettings.php , après les lignes require_once pour les extensions telles que Extension:Renameuser ou Extension:DeleteBatch , de sorte que le code éliminant le groupe bureaucrate ne soit pas écrasé par leurs autorisations de groupe par défaut.

Etablir les nouveaux groupes

Commençons par ajouter ce code à la fin de LocalSettings.php :

// les 'colonel' peuvent ajouter ou supprimer tout groupe de leur choix
$wgGroupPermissions['colonel']['userrights'] = true;
// les 'major', 'captain' et 'lieutenant' ne peuvent qu'ajouter ou supprimer des groupes de rangs inférieurs au leur
$wgAddGroups['major'] = array ( 'captain', 'lieutenant', 'sysop' );
$wgRemoveGroups['major'] = array ( 'captain', 'lieutenant', 'sysop' );   
$wgAddGroups['captain'] = array ( 'lieutenant', 'sysop' );
$wgRemoveGroups['captain'] = array ( 'lieutenant', 'sysop' );   
$wgAddGroups['lieutenant'] = array ( 'sysop' );
$wgRemoveGroups['lieutenant'] = array ( 'sysop' );
// donner à tous ces officiers les pouvoirs de 'sysop'.
$wgHierarchyGroups = array (
	'colonel',
	'major',
	'captain',
	'lieutenant',
	'sysop'
);
foreach ( $wgHierarchyGroups as $thisGroup ) {
	foreach ( $wgGroupPermissions['sysop'] as $thisSysopPermission => $thisSysopValue ) {
		if ( $thisSysopValue === true ) {
			$wgGroupPermissions[$thisGroup][$thisSysopPermission] = true;
		}
	}
}

Transférer les droits des bureaucrates aux autres groupes

Consultez votre page Special:UserGroupRights et estimez les droits, actuellement attribués aux bureaucrates (par exemple renameuser, deletebatch, etc.) que vous souhaitez attribuer à un autre groupe au delà des bureaucrates. Faites attention à cela lorsque vous ajoutez le code nécessaire dans LocalSettings.php, par exemple :

// attribuez aux 'colonel' les droits qui étaient accordés précédemment aux 'bureaucrat'
$wgGroupPermissions['colonel']['renameuser'] = true;
$wgGroupPermissions['colonel']['deletebatch'] = true;

Ajouter des utilisateurs aux nouveaux groupes, retirer des utilisateurs du groupe des bureaucrates, et abolir le groupe des bureaucrates

Connectez-vous à votre compte de bureaucrate, allez à Special:UserRights, et ajoutez les utilisateurs que vous voulez être des colonels, des majors, des capitaines, des lieutenants, etc. à ces groupes. Puis supprimez tous les membres du groupe utilisateur des bureaucrates. Assurez-vous de vous ajouter vous-même (ou tout autre personne qui sera en charge du groupe des colonnels) avant de vous retirer du groupe des bureaucrates, sinon vous venez de vous supprimer les droits utilisateur nécessaires à finaliser la transition vers la nouvelle hiérarchie. Lorsque vous avez terminé cela, ajoutez le code suivant à LocalSettings.php pour supprimer complètement le groupe des bureaucrates  :

// supprimer le groupe 'bureaucrat'
unset ( $wgGroupPermissions['bureaucrat'] );
unset ( $wgRevokePermissions['bureaucrat'] );
unset ( $wgAddGroups['bureaucrat'] );
unset ( $wgRemoveGroups['bureaucrat'] );
unset ( $wgGroupsAddToSelf['bureaucrat'] );
unset ( $wgGroupsRemoveFromSelf['bureaucrat'] );

S'il vous reste quelques bureaucrates errants dans la table Manuel:table user_groups , vous pouvez exécuter cette requête SQL :

DELETE FROM user_groups WHERE ug_group='bureaucrat';

Voir aussi