Extension:TitleBlacklist

From mediawiki.org
This page is a translated version of the page Extension:TitleBlacklist and the translation is 100% complete.
Cette extension est fournie avec MediaWiki 1.21 et supérieur. Ainsi vous n'avez pas besoin de la télécharger à nouveau. Néanmoins, vous devez encore suivre les autres instructions fournies.
Manuel des extensions MediaWiki
TitleBlacklist
État de la version : stable
Implémentation Droits utilisateur , API
Description Bloque la création des pages qui correspondent à l'expression régulière d'une liste noire
Auteur(s) Victor Vasiliev (VasilievVVdiscussion)
Dernière version 1.5.0 (Mises à jour continues)
Politique de compatibilité Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière.
MediaWiki 1.35+
PHP 7.0+
Licence Licence publique générale GNU v2.0 ou supérieur
Téléchargement
  • $wgTitleBlacklistSources
  • $wgTitleBlacklistUsernameSources
  • $wgTitleBlacklistCaching
  • $wgTitleBlacklistBlockAutoAccountCreation
  • $wgTitleBlacklistLogHits

  • tboverride
  • tboverride-account
  • titleblacklistlog
Téléchargements trimestriels 49 (Ranked 102nd)
Traduire l’extension TitleBlacklist sur translatewiki.net si elle y est disponible
Problèmes Tâches ouvertes · Signaler un bogue
Une proposition pour renommer cette extension est discutée dans la tâche T254650.

L'extension TitleBlacklist permet aux administrateurs de wiki de bloquer la création, le déplacement et le téléchargement de pages, dont le titre correspond à une ou plusieurs expressions régulières, ainsi que de bloquer la création des comptes dont les noms d'utilisateur correspondent.

Installation

  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé TitleBlacklist dans votre dossier extensions/.
    Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/TitleBlacklist
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'TitleBlacklist' );
    
  • Configurez les sources des listes de blocage (voir ci-dessous)
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.
Par défaut, elle n'affecte que les utilisateurs qui ne sont pas des administrateurs système. Pour la définir par défaut pour tous les utilisateurs, utilisez $wgGroupPermissions['sysop']['tboverride'] = false;.

Configuration

$wgTitleBlacklistSources
Tableau des sources des titres en liste noire.
Doit être au format tableau (nom => description de la source). Tableau vide par défaut.
$wgTitleBlacklistUsernameSources
Définit les sources qui peuvent fonctionner comme un filtre sur les noms d'utilisateurs.
« * » est pour tous ; false désactive tout.
Si vous voulez le limiter à des sources particulières, utilisez array (nom de source 1, nom de source 2). Cela peut être utile lorsque vous avez partagé le système de création de compte afin d'éviter la fragmentation de la liste noire.
$wgTitleBlacklistLogHits
Lorsque la valeur est true, les tentatives de création de comptes locaux correspondant aux listes de blocage sont consignées dans Special:Log/titleblacklist. Par défaut false. Notez que même désactivé, le journal sera toujours visible pour les groupes d'utilisateurs avec le droit titleblacklistlog.
$wgTitleBlacklistCaching
?
$wgTitleBlacklistBlockAutoAccountCreation
Bloque également les comptes créés automatiquement qui correspondent aux listes de blocage. Par défaut true.

Plusieurs sources de listes de blocage

La liste des blocages du titre peut être collectée à partir de plusieurs sources en dehors du message local. Pour configurer les sources de liste de blocage, utilisez le code suivant :

wfLoadExtension( 'TitleBlacklist' );
$wgTitleBlacklistSources = [
    [
         'type' => 'localpage',
         'src'  => 'MediaWiki:Titleblacklist'
    ],
    [
         'type' => 'url',
         'src'  => 'https://meta.wikimedia.org/w/index.php?title=Title_blacklist&action=raw'
    ],
    [
         'type' => 'file',
         'src'  => '/home/wikipedia/blacklists/titles',
    ]
];

Voir tâche T113864 pour plus d'informations.

Utilisation

Liste de Blocage

La liste des titres bloqués se trouve sur la page MediaWiki:Titleblacklist.

Cette page se compose d'expressions régulières, chacune figurant sur une ligne distincte. Chacune d'elles interdit la création de pages dont le titre vérifie la correspondance. Par exemple :

Foo <autoconfirmed|noedit|errmsg=blacklisted-testpage> # Ce nom de page n'est pas autorisé.
[Bb]ar # Personne ne devrait créer d'article à son propos
.*pandora.* # Ce mot n'est pas autorisé quelque soit la partie du nom de la page

Chaque entrée peut également contenir des attributs facultatifs, inclus dans <> et séparés par |.

  • autoconfirmed - permet également aux utilisateurs confirmés automatiquement d'effectuer de telles actions
  • casesensitive - ne pas ignorer la casse lors de la vérification du titre pour être mis sur la liste de blocage
  • noedit - interdire aussi la modification de la page (quand elle existe déjà)
  • moveonly - interdire les renommages mais autoriser la création ordinaire (rev:35163)
  • newaccountonly - interdire la création de noms d'utilisateurs correspondants, mais autoriser la création de pages (rev:38977)
  • reupload - autoriser un nouveau téléversement des fichiers bloqués existants (rev:33656)
  • errmsg - le nom du message qui doit être affiché au lieu du message standard

Si l'extension AntiSpoof est installée, vous pouvez également utiliser l'attribut ‎<antispoof>.

Ce que l'on appelle ici des expressions régulières ne sont pas des expressions régulières à proprement parler mais plutôt des sous-modèles insérés dans une expression régulière codée en dur. Par exemple le sous-motif Foo ci-dessus peut créer une expression régulière comme /^Foo$/usi.

Les traits de soulignement (« _ ») dans les expressions régulières seront convertis en espaces par l'extension, car les titres sont comparé sous leur format textuel (« Page title » au lieu de « Page_title »).

Liste sécurisée

Il y a aussi une liste de sécurité sur MediaWiki:Titlewhitelist. La liste de blocage est appliquée en premier, puis la liste de sécurité. Ainsi, les entrées utilisateur qui correspondent à une entrée de la liste de blocage sont bloquées, sauf si elles correspondent à une entrée de la liste de sécurité. Vous n'avez pas à configurer quoi que ce soit dans LocalSettings.php pour utiliser la liste de sécurité. Certains des attributs facultatifs énumérés ci-dessus, pour la liste de blocage, fonctionnent également pour la liste de sécurité, par exemple casesensitive.

Personnalisation

Messages d'avertissement

Lorsque la création de page est bloquée parce que le titre figure dans la liste de blocage, un message d'avertissement est affiché à l'utilisateur. Il peut être adapté via les messages système suivants définis dans l'espace de noms Mediawiki: :

Les messages personnalisés peuvent être définis à l'aide de l'attribut errmsg.

Exemple : utilisation de TitleBlacklist pour contrôler la création de compte utilisateur

Présentation conceptuelle

Le nom d'utilisateur pour les nouveaux comptes sera considéré par cette extension différemment de la façon dont elle considère les nouveaux articles. Cette extension va ajouter "User :" (ou son équivalent localisé) à la chaîne qu'un utilisateur saisit dans Username sur la page de création du compte. Ainsi, lorsque cette extension effectue les correspondances avec votre expression régulière, comme trouvé sur MediaWiki:Titleblacklist ou MediaWiki:Titlewhitelist, elle détectera "User:" + <entrée utilisateur>.

Par exemple, imaginez que vous voulez bloquer "jill" en tant que nouvel utilisateur. Imaginez que vous disposiez d'une expression régulière dans la liste de blocage : "jill.* <newaccountonly>" et qu'un utilisateur entre "jill" comme nom d'utilisateur sur la page de création de compte. Cela passera car la comparaison que fera cette extension sera entre "jill.*" (l'expression régulière) et "User:jill" (la chaîne d'entrée construite). Ceux-ci ne correspondent pas et donc "jill" est autorisé (et vous n'aviez probablement pas l'intention d'obtenir cela). Pour appliquer le blocage voulu, utilisez une expression régulière telle que ".*jill.* <newaccountonly>" ou "User:jill.* <newaccountonly>" sur MediaWiki:Titleblacklist.

Si vous voulez bloquer tous les utilisateurs sauf ceux qui correspondent à une expression régulière, bloquez tous les utilisateurs dans MediaWiki:Titleblacklist et écrivez l'expression des autorisés dans le MediaWiki:Titlewhitelist.

Comment faire

Si vous souhaitez forcer que tous les noms d'utilisateur lors de la création du compte, se composent exactement de deux noms, séparés par une espace, avec chaque nom en majuscules, procédez comme suit :

1. Installez TitleBlacklist.

2. Ajoutez ce qui suit à vos LocalSettings.php

wfLoadExtension( 'TitleBlacklist' );
$wgGroupPermissions['sysop']['tboverride'] = false; 
$wgTitleBlacklistSources = [
  [
    'type' => 'localpage',
    'src'  => 'MediaWiki:Titleblacklist'
  ]
];

3. Dans https://www.example.com/mywiki/MediaWiki:Titleblacklist ajouter

# Bloquer tous les comptes utilisateur, et n'autoriser que ceux qui correspondent à MediaWiki:Titlewhitelistregex 
.* <newaccountonly>

4. Dans https://www.example.com/mywiki/MediaWiki:Titlewhitelist ajouter

# N'autorise que deux noms, séparés par une espace, dont chacun commence par une majuscule, comme « Fred Mew » OK, « Fred mew » échec, « Fredmew » échec.
# Dépend de .* <newaccountonly> dans la liste de blocage
User:[A-Z][a-z]+\s[A-Z][a-z]+ <casesensitive>

5. En https://www.example.com/mywiki/MediaWiki:Titleblacklist-forbidden-new-account edit

Le nom d'utilisateur « $2 » a été bloqué pour la création. Il vérifie l'entrée suivante dans la liste de blocage : <code>$1</code>.

Veuillez utiliser un vrai nom pour le nom d'utilisateur. Les noms d'utilisateur doivent être formés de deux noms séparés par une espace. Chacun d'eux doit commencer par une majuscule.

Par exemple :
* "Mary Smith". OK.
* "MarySmith". Non valide.
* "Mary smith". Non valide.
* "marysmith". Non valide.

Les règles de blocage de la création des noms d'utilisateurs (et de la création d'articles) sont contrôlées par MediaWiki:Titleblacklist et MediaWiki:Titlewhitelist. Ce message peut être personnalisé à MediaWiki:Titleblacklist-forbidden-new-account

Test des correspondances

Le module API action=titleblacklist peut être utilisé pour tester un titre et une action (par exemple, modifier, créer, nouveau compte) par rapport à la liste de blocage. Les utilisateurs ayant le droit 'tboverride' doivent être sûrs de fournir le paramètre tbnooverride.

Par exemple, si la liste de blocage contenait le filtre:

.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Détecte la répétition du même caractère onze fois ou plus dans les noms d'utilisateur

vous pouvez utiliser une requête API comme

Résultat
{
    "titleblacklist": {
        "result": "blacklisted",
        "reason": "<table  class=\"plainlinks fmbox\nfmbox-system \" style=\"\" role=\"presentation\" dir=\"ltr\">\n<tr>\n<td class=\"mbox-image\">\n  [[File:Imbox notice.png|40x40px|link=|alt=]]</td>\n<td class=\"mbox-text\" style=\"\"> The user name \"AAAAAAAAAAA\" [[Mediawiki talk:Titleblacklist|has been put on the block list]] from creation. </td>\n\n</tr>\n</table>",
        "message": "titleblacklist-forbidden-new-account-invalid",
        "line": ".*(.)\1{10}.* &lt;newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid&gt; # Disallows eleven or more of the same character repeated in usernames"
    }
}

Si Scribunto est installé, cette extension permet de tester si des titres et des actions spécifiques correspondent à une entrée de la liste de blocage à l'aide de la fonction mw.ext.TitleBlacklist.test. Si une correspondance est trouvée, les détails de l'entrée correspondante sont renvoyés.

Par exemple, si la liste de blocage contenait le filtre :

.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Détecte la répétition du même caractère onze fois ou plus dans les noms d'utilisateur

exécution de la fonction :

mw.ext.TitleBlacklist.test("new-account", "AAAAAAAAAAA")

renverrait la table suivante contenant les détails de l'entrée correspondante :

{
	custommessage = "titleblacklist-forbidden-new-account-invalid",
	message = "titleblacklist-forbidden-new-account-invalid",
	params = {
		errmsg = "titleblacklist-forbidden-new-account-invalid",
		newaccountonly = true
	},
	raw = " .*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Détecte la répétition du même caractère onze fois ou plus dans les noms d'utilisateur",
	regex = ".*(.)\1{10}.*",
	version = 3
}

Purger le cache

Le contenu des listes de blocage est mis en cache. Les modifications faites sur le serveur à propos des listes de blocage sur une URL ou un fichier, ne sont pas appliquées immédiatement. Pour forcer le nettoyage du cache, modifiez et sauvegardez la page MediaWiki:Titleblacklist (même si vous n'y faites aucune modification). Cela n'a pas d'importance s'il est configuré comme liste de blocage ou pas. Voir includes/Hooks.php.

Ressources sur les expressions régulières

Voir aussi