Jump to content

Extension:AbuseFilter

From mediawiki.org
This page is a translated version of the page Extension:AbuseFilter and the translation is 84% complete.
Outdated translations are marked like this.
Cette extension est fournie avec MediaWiki 1.38 et supérieur. Ainsi vous n'avez pas besoin de télécharger à nouveau. Néanmoins, vous devez encore suivre les autres instructions fournies.
Manuel des extensions MediaWiki
AbuseFilter
État de la version : stable
Implémentation Activité utilisateur , Page spéciale , API
Description Permet de placer des restrictions spécifiques basées sur des comportements sur le wiki.
Auteur(s)
Politique de compatibilité Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière.
MediaWiki >= 1.43.0
Modifie la base
de données
Oui
Composer mediawiki/abuse-filter
Tables abuse_filter
abuse_filter_action
abuse_filter_history
abuse_filter_log
Licence Licence publique générale GNU v2.0 ou supérieur
Téléchargement
  • $wgAbuseFilterConditionLimit
  • $wgAbuseFilterRangeBlockSize
  • $wgAbuseFilterAnonBlockDuration
  • $wgAbuseFilterLogIPMaxAge
  • $wgAbuseFilterCentralDB
  • $wgAbuseFilterDefaultWarningMessage
  • $wgAbuseFilterEmergencyDisableAge
  • $wgAbuseFilterEnableBlockedExternalDomain
  • $wgAbuseFilterActionRestrictions
  • $wgAbuseFilterActions
  • $wgAbuseFilterProtectedVariables
  • $wgAbuseFilterLogIP
  • $wgAbuseFilterPrivateDetailsForceReason
  • $wgAbuseFilterEmergencyDisableCount
  • $wgAbuseFilterLogPrivateDetailsAccess
  • $wgAbuseFilterSlowFilterRuntimeLimit
  • $wgAbuseFilterEmergencyDisableThreshold
  • $wgAbuseFilterLocallyDisabledGlobalActions
  • $wgAbuseFilterBlockDuration
  • $wgAbuseFilterDefaultDisallowMessage
  • $wgAbuseFilterValidGroups
  • $wgAbuseFilterNotificationsPrivate
  • $wgAbuseFilterBlockAutopromoteDuration
  • $wgAbuseFilterIsCentral
  • $wgAbuseFilterNotifications
  • abusefilter-modify
  • abusefilter-log-detail
  • abusefilter-view
  • abusefilter-log
  • abusefilter-privatedetails
  • abusefilter-privatedetails-log
  • abusefilter-modify-restricted
  • abusefilter-revert
  • abusefilter-view-private
  • abusefilter-log-private
  • abusefilter-hidden-log
  • abusefilter-hide-log
  • abusefilter-modify-global
  • abusefilter-modify-blocked-external-domains
  • abusefilter-bypass-blocked-external-domains
  • abusefilter-access-protected-vars
  • abusefilter-protected-vars-log
Téléchargements trimestriels 127 (Ranked 45th)
Utilisé par les wikis publics 2,939 (Ranked 186th)
Traduire l’extension AbuseFilter sur translatewiki.net si elle y est disponible
Problèmes Tâches ouvertes · Signaler un bogue

AbuseFilter

2020 Coolest Tool
Award Winner

in the category
Quality


L’extension AbuseFilter (filtre anti-abus) permet aux utilisateurs privilégiés de positionner des contrôles spécifiques sur les actions des utilisateurs tels que les contributions et de créer des réactions automatiques pour certains comportements.

Par exemple, un filtre peut être créé pour empêcher que certains utilisateurs anonymes n'ajoutent des liens externes , ou pour bloquer un utilisateur qui supprime plus de 2000 caractères.

Installation

  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé AbuseFilter 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/AbuseFilter
  • Seulement lorsque vous installez à partir de Git, exécutez Composer pour installer les dépendances PHP, en entrant composer install --no-dev après vous être positionné dans le répertoire de l'extension. (Voir tâche T173141 pour des complications potentielles.)
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'AbuseFilter' );
    
  • Exécutez le script de mise à jour qui va créer automatiquement les tables de base de données dont cette extension a besoin.
  • Configurer si nécessaire.
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.
Lors de l'installation depuis Git, veuillez noter que cette extension nécessite Composer .

Ainsi, après l'installation depuis Git, allez dans le répertoire contenant l'extension, par exemple "../extensions/AbuseFilter/" et exécutez composer install --no-dev, ou lors de la mise à jour : composer update --no-dev.

Alternativement et de préférence, ajoutez la ligne "extensions/AbuseFilter/composer.json" au fichier « composer.local.json » dans le répertoire racine de votre wiki comme par exemple

{
	"extra": {
		"merge-plugin": {
			"include": [
				"extensions/AbuseFilter/composer.json"
			]
		}
	}
}

Configuration

Droits utilisateur

Une fois que vous avez installé l’extension, vous devez paramétrer les droits utilisateur dans "LocalSettings.php".

User rights for AbuseFilter
Droit Description Notes User groups that have this right by default Versions
abusefilter-modify Créer ou modifier les filtres anti-abus Requires the abusefilter-view right sysop 1.19+
abusefilter-view Voir les filtres anti-abus * 1.19+
abusefilter-log Voir le journal des filtres anti-abus * 1.19+
abusefilter-log-detail Voir les entrées détaillées du journal anti-abus Requires the abusefilter-log right sysop 1.19+
abusefilter-privatedetails Voir les données privées dans le journal anti-abus Prior to 1.34 this right was named abusefilter-private - Requires the abusefilter-log-detail right 1.19+
abusefilter-modify-restricted Modifier les filtres anti-abus qui ont des actions restreintes Requires the abusefilter-modify right sysop 1.19+
abusefilter-revert Révoquer toutes les modifications effectuées par un filtre anti-abus donné sysop 1.19+
abusefilter-view-private Voir les filtres anti-abus marqués comme privés Requires the abusefilter-view right (not needed if the group already has the abusefilter-modify right) sysop 1.19+
abusefilter-hide-log Masquer des entrées dans le journal anti-abus Requires the abusefilter-log right suppress 1.19+
abusefilter-hidden-log Voir les entrées masquées du journal anti-abus Requires the abusefilter-log right suppress 1.19+
abusefilter-log-private Voir les entrées du journal des filtres anti-abus marqués comme privés Requires the abusefilter-log right (not needed if the group already has the abusefilter-modify or abusefilter-view-private rights) sysop 1.20+
abusefilter-modify-global Créer ou modifier des filtres anti-abus globaux Requires the abusefilter-modify right 1.21+
abusefilter-privatedetails-log Afficher les détails confidentiels du journal des filtres anti-abus Prior to 1.34 this right was named abusefilter-private-log 1.31+
abusefilter-modify-blocked-external-domains Créer ou modifier la liste des domaines externes vers lesquels les liens sont bloqués sysop 1.41+
abusefilter-bypass-blocked-external-domains Contourner les domaines externes bloqués Requires the edit right bot 1.41+
abusefilter-access-protected-vars Voir et créer des filtres qui utilisent des variables protégées sysop 1.43+
abusefilter-protected-vars-log Afficher les journaux liés à l'accès aux valeurs des variables protégées sysop 1.43+

Par exemple, la configuration d’exemple suivante permet aux sysops de faire tout ce qu’ils veulent avec AbuseFilter, et tout le monde peut voir les journaux et les paramètres publics du filtre :

$wgGroupPermissions['sysop']['abusefilter-modify'] = true;
$wgGroupPermissions['*']['abusefilter-log-detail'] = true;
$wgGroupPermissions['*']['abusefilter-view'] = true;
$wgGroupPermissions['*']['abusefilter-log'] = true;
$wgGroupPermissions['sysop']['abusefilter-privatedetails'] = true;
$wgGroupPermissions['sysop']['abusefilter-modify-restricted'] = true;
$wgGroupPermissions['sysop']['abusefilter-revert'] = true;
$wgGroupPermissions['sysop']['abusefilter-access-protected-vars'] = true;
$wgGroupPermissions['sysop']['abusefilter-protected-vars-log'] = true;
Les filtres marqués comme privés ne peuvent être vus que par les utilisateurs ayant le droit abusefilter-modify ou abusefilter-view-private.
Protected filters can only be created and viewed by users with the abusefilter-access-protected-vars permission. Logs pertaining to these filters can only be viewed by users with the abusefilter-protected-vars-log permission. For more information, see Rules format .

Paramètres

Nom de la variable Valeur par défaut Description
$wgAbuseFilterActions
[
    'throttle' => true,
    'warn' => true,
    'disallow' => true,
    'blockautopromote' => true,
    'block' => true,
    'rangeblock' => false,
    'degroup' => false,
    'tag' => true
]
Actions possibles que peuvent faire les filtres anti-abus. Lors de l'ajout d'une nouvelle action, vérifiez si elle est restreinte dans $wgAbuseFilterActionRestrictions et, si c'est le cas, n'oubliez pas d'ajouter le droit abusefilter-modify-restricted aux groupes d'utilisateurs appropriés.
$wgAbuseFilterConditionLimit
1000
Nombre maximum de 'conditions' qui peuvent être utilisées à chaque fois que les filtres sont exécutés sur une modification. (Les filtres plus complexes demandent davantage de 'conditions'.)
$wgAbuseFilterValidGroups
[
    'default'
]
Liste des groupes de filtres dans lesquels ils peuvent être classés. Par défaut il n'existe qu'un seul groupe. D'autres extensions peuvent ajouter des groupes supplémentaires.
$wgAbuseFilterEmergencyDisableThreshold
[
    'default' => 0.05
]
Désactiver les filtres s’ils sont déclenchés sur plus de 2 modifications, constituant plus de 5 % des actions vérifiées avec le groupe de filtres durant la période d'observation choisie (le plus souvent un jour), et que le filtre ait été modifié dans les 86400 dernières secondes (un jour). Voir la limitation d'urgence.
$wgAbuseFilterEmergencyDisableCount
[
    'default' => 2
]
$wgAbuseFilterEmergencyDisableAge
[
    'default' => 86400
]
$wgAbuseFilterActionRestrictions
[
	"throttle" => false,
	"warn" => false,
	"disallow" => false,
	"blockautopromote" => true,
	"block" => true,
	"rangeblock" => true,
	"degroup" => true,
	"tag" => false
]
Les utilisateurs doivent avoir le droit utilisateur abusefilter-modify-restricted ainsi que abusefilter-modify pour pouvoir créer ou modifier les filtres que supposent ces actions.
$wgAbuseFilterNotifications
false
Permet de configurer l'extension pour envoyer des notifications de déclenchement vers Special:RecentChanges ou vers UDP. Options disponibles : rc, udp, rcandudp
Pour envoyer les modifications des fitres anti-abus sur Special:RecentChanges, utiliser unset($wgLogRestrictions['abusefilter']);.
$wgAbuseFilterNotificationsPrivate
false
Autoriser les notifications pour les filtres privés.
$wgAbuseFilterCentralDB
null
MW 1.41+ Nom de la base de données où les filtres anti-abus sont stockés (supporté uniquement dans la dernière version de développement). Cela nécessite que CentralAuth soit installé, autrement les filtres globaux ne fonctionneront pas dans une ferme de wikis.
$wgAbuseFilterIsCentral
false
MW 1.41+ Positionnez cette variable à true pour le wiki où les filtres globaux anti-abus sont stockés (supporté uniquement dans la dernière version de développement). Cela nécessite que CentralAuth soit installé, autrement les filtres globaux ne fonctionneront pas dans une ferme de wikis.
$wgAbuseFilterLocallyDisabledGlobalActions
[
	"throttle" => false,
	"warn" => false,
	"disallow" => false,
	"blockautopromote" => false,
	"block" => false,
	"rangeblock" => false,
	"degroup" => false,
	"tag" => false
]
Interdire aux filtres centralisés d'effectuer des actions définies comme true dans cette variable.
$wgAbuseFilterBlockDuration
'indefinite'
Durée des blocages faits par le filtre anti-abus.
A partir de 1.31.0-wmf.25, les durées de blocage peuvent être spécifiées indépendamment pour chaque filtre et remplacent cette variable. Cette variable est uniquement utilisée lors de l'activation du blocage afin de présélectionner une durée par défaut.
$wgAbuseFilterAnonBlockDuration
null
Durée des blocages décidés par AbuseFilter pour les utilisateurs anonymes; la valeur de $wgAbuseFilterBlockDuration sera utilisée si cette durée n'est pas initialisée.
A partir de 1.31.0-wmf.25, les durées des blocages peuvent être spécifiées pour chaque filtre indépendamment et remplacent cette variable. Cette variable est uniquement utilisée lors de l'activation du blocage afin de présélectionner une durée par défaut.
$wgAbuseFilterBlockAutopromoteDuration
5
Durée en jours pendant laquelle les filtres empêchent l'autopromotion de l'utilisateur.
$wgAbuseFilterDefaultWarningMessage
[
    'default' => 'abusefilter-warning'
]
Messages d'avertissement par défaut, par groupe de filtrage.
$wgAbuseFilterDefaultDisallowMessage
[
    'default' => 'abusefilter-disallowed'
]
Messages d'interdiction par défaut, per groupe de filtre
$wgAbuseFilterLogIP
true
Inclure ou non l’adresse IP dans le journal d’Abuse Filter (abuse_filter_log)
$wgAbuseFilterLogIPMaxAge
3 * 30 * 24 * 3600
Durée utilisée comme limite pour purger les anciennes données journalisées par adresse IP. Par défaut : 3 mois. Utilisé par le script de maintenance purgeOldLogIPData.php.
$wgAbuseFilterProfileActionsCap
10000
Nombre d'actions qui déterminent quand il faut réinitialiser les statistiques de profilage.
$wgAbuseFilterLogPrivateDetailsAccess
false
indique s'il faut tracer l'accès aux informations privées à partir d'une entrée de journal du filtre.
$wgAbuseFilterPrivateDetailsForceReason
false
indique si les utilisateurs sont obligés de fournir un motif pour accéder aux données privées à partir d'une entrée de journal du filtre.
$wgAbuseFilterSlowFilterRuntimeLimit
500
Temps d’exécution en millisecondes autorisé avant que le filtre soit considéré comme lent.
$wgAbuseFilterRangeBlockSize
[
    'IPv4' => '16',
    'IPv6' => '19',
]
Taille de la plage bloquée par l’action « rangeblock ».
$wgAbuseFilterProtectedVariables
[ "user_unnamed_ip" ]
Array of variables that are be considered protected (limited access) and require the abusefilter-access-protected-vars right to use/view.

Limitation d'urgence

AbuseFilter est livré avec une fonctionnalité qui limite automatiquement (désactive) les filtres qui ont été dernièrement modifiés et qui vérifient un certain seuil d'actions récentes.

Ceci est fait pour empêcher les modifications nuisibles sur les filtres, pour bloquer chaque utilisateur réalisant une action sur le wiki ou similaire.

La condition pour désactiver le filtre dépend de ces variables :

  • $wgAbuseFilterEmergencyDisableThreshold - Pourcentage de déclenchements du filtre sur le nombre total d'actions durant la période d'observation.
  • $wgAbuseFilterEmergencyDisableCount - compte le nombre de fois où le filtre s'est déclenché pendant la période d'observation.
  • $wgAbuseFilterEmergencyDisableAge - Age du filtre pour le prendre en compte. Si la dernière modification du filtre est plus ancienne que ce nombre de secondes, le filtre ne sera pas limité - à moins qu'il ne le soit déjà.

Les filtres de limitation peuvent être identifiés dans la liste des filtres (Special:AbuseFilter) avec l'état Activé, Taux élevé de correspondances. La limitation se fait silencieusement, et il n'est pas possible de voir quand un filtre est limité.

Lorsqu'un filtre est limité, il n'exécute aucune action dangereuse (actions généralement limitées à des droits spéciaux comme le blocage de l'utilisateur ou sa suppression de groupes, contrôlés par $wgAbuseFilterActionRestrictions), et seules les actions "sûres" sont autorisées (celles qui peuvent avertir ou empêcher l'action en cours). Les filtres de limitation ne sont pas activés automatiquement. Pour désactiver la limitation, vous devez modifier les filtres. Notez que vous devez modifier actuellement quelque chose dans le filtre : mettre à jour ses commentaires est suffisant.

Notez que si vous modifiez le filtre, vous modifiez également son age, et vous pourrez provoquer éventuellement sa désactivation s'il satisfait aux conditions pour être limité durant une courte période depuis la dernière modification, ce qui en fait un filtre non utilisable si votre wiki reçoit davantage de modifications abusives que de modifications légitimes.

Créer et gérer les filtres

Une fois l’extension installée, les filtres peuvent être créés, testés, changés, effacés, et on peut accéder aux journaux depuis la page de gestion du filtre anti-abus Special:AbuseFilter.

API

Le filtre anti-abus ajoute deux modules dans l’API list, un relatif aux détails du filtre anti-abus (abusefilters) et un relatif au journal des filtrages puisque celui-ci est séparé des autres journaux MediaWiki (abuselog). Il n’est pas possible de créer ou de modifier des filtres anti-abus à partir de l’API.

list = abusefilters

Liste les informations sur les filtres

Paramètres
  • abfstartid - identifiant du filtre où commencer l’énumération
  • abfendid - identifiant du filtre où terminer l’énumération
  • abfdir - direction dans laquelle se fait l’énumération (older, newer = vers le plus ancien, vers le plus récent)
  • abfshow - ne montrer que les filtres qui répondent à ces critères (enabled|!enabled|deleted|!deleted|private|!private = activé|!activé|effacé|!effacé|privé|!privé)
  • abflimit - nombre maximum de filtres dans la liste
  • abfprop - quelles propriétés afficher (id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private = identifiant|description|motif|actions|nombre d’activations|commentaires|dernier contributeur|date de dernière modification|statut|privé)

Quand les filtres sont privés, quelques-unes des propriétés spécifiées avec abfprop seront manquantes à moins que vous n’ayez les droits utilisateur appropriés.

Exemples
Liste les filtres anti-abus non-privés
Résultat
{
    "batchcomplete": "",
    "continue": {
        "abfstartid": 18,
        "continue": "-||"
    },
    "query": {
        "abusefilters": [
            {
                "id": 1,
                "hits": 41430
            },
            {
                "id": 3,
                "hits": 957485
            },
            {
                "id": 5,
                "hits": 5931
            },
            {
                "id": 6,
                "hits": 19
            },
            {
                "id": 8,
                "hits": 7
            },
            {
                "id": 9,
                "hits": 41354
            },
            {
                "id": 11,
                "hits": 132971
            },
            {
                "id": 12,
                "hits": 139693
            },
            {
                "id": 14,
                "hits": 63
            },
            {
                "id": 15,
                "hits": 15
            }
        ]
    }
}

list = abuselog

Liste les instances où des actions ont actionné un filtre anti-abus.

Paramètres
  • aflstart - identifiant du filtre où commencer l’énumération
  • aflend - identifiant du filtre où terminer l’énumération
  • afldir - direction dans laquelle se fait l’énumération (older, newer = vers le plus vieux, vers le plus récent)
  • afluser - ne montrer que les entrées où l’action est testée pour un utilisateur ou une IP donné.
  • afltitle - ne montrer que les entrées où l’action est testée pour une page donnée.
  • aflfilter - ne montrer que les entrées actionnées par un identifiant de filtre donné
  • afllimit - nombre maximum d’entrées dans la liste
  • aflprop - quelles propriétés afficher: (ids|filter|user|ip|title|action|details|result|timestamp|hidden|revid|wiki)
Exemple
Liste les instances où le filtre anti-abus a été actionné en réponse aux actions de l’utilisateur « SineBot »
Résultat
{
    "batchcomplete": "",
    "continue": {
        "aflstart": "2018-03-06T02:34:18Z",
        "continue": "-||"
    },
    "query": {
        "abuselog": [
            {
                "id": 27219261,
                "filter_id": "1073"
            },
            {
                "id": 26938051,
                "filter_id": ""
            },
            {
                "id": 23388942,
                "filter_id": "1"
            },
            {
                "id": 22044912,
                "filter_id": ""
            },
            {
                "id": 22032235,
                "filter_id": ""
            },
            {
                "id": 22032196,
                "filter_id": ""
            },
            {
                "id": 21983882,
                "filter_id": ""
            },
            {
                "id": 20594818,
                "filter_id": "904"
            },
            {
                "id": 20593489,
                "filter_id": "904"
            },
            {
                "id": 20590442,
                "filter_id": "904"
            }
        ]
    }
}

Erreurs potentielles

  • Certains utilisateurs peuvent s'apercevoir que créer de nouveaux filtres ou en modifier des anciens ne fonctionne pas et ils sont redirigés simplement vers la page d'origine. Si le wiki utilise des certificats SSL, cette erreur peut être éventuellement dûe à la valeur de $wgServer , qui peut utiliser « http:// » au lieu de « https:// » . Une indication de cette erreur sera que le navigateur affichera un avertissement https pour les pages Special:AbuseFilter. (Topic:T23dyyih0ofjada5)

Integration avec d'autres extensions

Vous pouvez intégrer AbuseFilter avec d'autres extensions de différentes manières.

Ajouter des variables pour le filtrage

Il est possible d'ajouter de nouvelles variables à utiliser dans les filtres anti-abus. Une liste d'exemples est disponible . Pour faire cela, vous devez :

  • Ajoutez un gestionnaire pour l'accroche AbuseFilter-builder . Pour ajouter une variable, vous devez utiliser $builder['vars']['variable_name'] = 'i18n-key';, où variable_name est le nom de la variable, et i18n-key est le fragment d'une clé i18n. La clé complète sera abusefilter-edit-builder-vars-{$your_key}.
  • Ajouter les messages i18n que vous avez choisis à l'étape précédente.
  • Choisissez un gestionnaire d'accroche pour lequel la variable sera calculée. En fonction de votre cas d'utilisation, vous pouvez :
    • Implémente l'accroche AbuseFilter-generateTitleVars  ; ceci est fait particulièrement pour les variables relatives aux pages;
    • Implémente l'accroche AbuseFilter-generateUserVars  ; ceci est fait particulièrement pour les variables relatives aux utilisateurs;
    • Implémenter l’accroche AbuseFilter-generateGenericVars (cela sert pour les variables non liées à une page spécifique ou à un utilisateur) ;
    • Implémentez l'accroche AbuseFilterAlterVariables  ; ceci est un peu plus flexible que les autres accroches, mais il a un inconvénient : votre variable ne sera pas disponible lorsque vous examinerez les dernière entrées des modifications récentes réalisées. Si vous voulez implémenter cette fonctionnalité (et il est recommandé de le faire), vous devez utiliser l'une des accroches décrites ci-dessus, et son troisième paramètre ($RCRow).
  • A l'intérieur du gestionnaire associé à l'accroche, il existe deux façons d'ajouter une variable :
    • La manière directe est d'appeler $vars->setVar( 'var_name', var_value );. Ceci est l'idéal uniquement quand la valeur est facile et rapide à évaluer : la valeur est évaluée même si aucun filtre actif ne l'utilise.
    • La manière paresseuse est d'appeler $vars->setLazyLoadVar( 'var_name', 'method_name', $params );. Ici, 'method_name' est un identifiant (unique) qui sera utilisé pour évaluer la variable (il est recommandé de le préfixer en lui ajoutant le nom de votre extension). Pour enregistrer la méthode, vous devez ajouter un gestionnaire à l'accroche AbuseFilter-computeVariable  ; de là vous devez contrôler si la $method passée correspond à 'method_name' et si c'est le cas, vous évaluez la variable. Enfin, $params est un tableau de paramètres dont vous aurez besoin pour évaluer la variable; ceux-ci sont passés au gestionnaire de l'accroche computeVariable. Pour un exemple de ceci, voyez le global_user_groups de CentralAuth.

Ajouter des actions personnalisées

Vous pouvez ajouter des gestionnaires d’actions personnalisées, afin que les filtres puissent effectuer d’autres actions. Pour ce faire, choisissez un nom pour votre action (« my-action » ici), puis :

  • Créez une classe nommée par ex. MyAction, qui doit hériter de \MediaWiki\Extension\AbuseFilter\Consequence et qui peut implémenter HookAborterConsequence ou ConsequencesDisablerConsequence.
  • Enregistrez une fonction à l’accroche AbuseFilterCustomActions ; la fonction doit fournir, comme indiqué dans la documentation de l’accroche, un callback qui renvoie une instance de la classe créée ci-dessus. Par exemple :
class MyAction extends \MediaWiki\Extension\AbuseFilter\Consequence {
    public function run() {
        throw new \Exception( 'Write me' );
    }
}
public function onAbuseFilterCustomActions( &$actions ) {
    $actions[] = function ( \MediaWiki\Extension\AbuseFilter\Consequence\Parameters $params, array $rawParams ) : MyConsequence {
        return new MyAction( $params, $rawParams );
    };
}

Ensuite, vous devez ajouter les messages i18n suivants. Vous pouvez remplacer « my_action » avec par exemple « block » afin de voir à quoi servent ces messages.

  • 'abusefilter-edit-action-${my_action}'
  • 'abusefilter-action-${my_action}'

Ajouter des groupes de règles

Vous pouvez aussi ajouter des groupes de règles supplémentaires, qui peuvent être utilisés pour regrouper les filtres anti-abus existants. Notez qu'actuellement, chaque filtre ne peut se trouver que dans un seul groupe à la fois (T116642). Actuellement, le seul consommateur connu de cette fonctionnalité sont les Extension:StructuredDiscussions . Pour faire cela vous devez :

  • Ajouter le nom du groupe à $wgAbuseFilterValidGroups
  • Ajouter du code pour exécuter les filtres avec votre groupe. Notez que AbuseFilter ne fera pas cela tout seul. Pour cela, vous devez construire un objet AbuseFilterRunner en lui passant le nom de votre groupe.

Voir aussi