Extension:AbuseFilter/nl

This page is a translated version of the page Extension:AbuseFilter and the translation is 100% complete.
Deze extensie wordt meegeleverd met MediaWiki 1.38 en nieuwer. Het is dus niet nodig om deze opnieuw te downloaden. De andere instructies hier beneden moeten nog wel gevolgd worden.
MediaWiki Handleiding extensies
AbuseFilter
Release status: stabiel
Implementatie Gebruikersactiviteit , Speciale pagina , API
Beschrijving Maakt het mogelijk specifiek gedrag bij een activiteit op de wiki te beperken
Auteur(s)
Compatibiliteit beleid Snapshots releases samen met MediaWiki. Master is niet achterwaarts compatibel.
MediaWiki >= 1.43.0
Database wijzigingen Ja
Composer mediawiki/abuse-filter
Tabellen abuse_filter
abuse_filter_action
abuse_filter_history
abuse_filter_log
Licentie GNU General Public Licentie 2.0 of hoger
Download
  • $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
Downloads kwartaal 138 (Ranked 42nd)
Publieke wiki's die het gebruiken 2,939 (Ranked 186th)
Vertaal de AbuseFilter extensie indien beschikbaar op translatewiki.net
Problemen Open taken · Rapporteer een bug

AbuseFilter

2020 Coolest Tool
Award Winner

in the category
Quality


Met de extensie AbuseFilter kunnen bevoegde gebruikers specifieke acties instellen die gedaan moeten worden als gebruikers bepaalde acties uitvoeren, zoals dat wijzigingen aan bepaalde criteria moeten voldoen.

Er kan bijvoorbeeld een filter aangemaakt worden dat voorkomt dat ongeregistreerde gebruikers externe links kunnen toevoegen of die een gebruiker blokkeert die meer dan 2000 tekens in een keer wil verwijderen.

Installatie

  • Download en plaats de bestanden in de map AbuseFilter in de map extensions/.
    Ontwikkelaars en bijdragers van code moeten in plaats daarvan de extensie van Git installeren, met behulp van:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/AbuseFilter
  • Alleen bij installeren vanuit Git, run Composer om PHP afhankelijkheden te installeren, door het publiceren van composer install --no-dev in de extensie-map. (Zie taak T173141 voor potentiële problemen.)
  • Voeg de volgende code onderaan het bestand LocalSettings.php toe:
    wfLoadExtension( 'AbuseFilter' );
    
  • Voer het update script uit, dat automatisch de vereiste database-tabellen creëert die nodig zijn voor de extensie.
  • Als verplicht configureren.
  •   Klaar – Navigeer naar Special:Version op de wiki om te controleren dat de extensie geïnstalleerd is.
Bij het installeren uit Git, bij deze extensie is Composer/nl verplicht.

Dus ga, na de installatie uit Git, naar de map met de extensie bijv. "../extensions/AbuseFilter/" en voer composer install --no-dev uit. Na het updaten moet alleen composer update --no-dev worden uitgevoerd.

Een alternatief dat de voorkeur heeft is het toevoegen van de regel "extensions/AbuseFilter/composer.json" aan het bestand "composer.local.json" in de root map van uw wiki, bijv.

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

Configuratie

Gebruikersrechten

Als de extensie is geïnstalleerd moet in "LocalSettings.php" de benodigde gebruikersrechten worden ingesteld.

Gebruikersrechten voor AbuseFilter
Recht Beschrijving Opmerkingen Gebruikersgroepen die standaard dit recht hebben
abusefilter-modify Filters aanmaken of aanpassen Vereist het recht abusefilter-view sysop
abusefilter-view Filters bekijken *
abusefilter-log Het filterlogboek bekijken *
abusefilter-log-detail Details van filterlogboekregels bekijken Vereist het recht abusefilter-log sysop
abusefilter-privatedetails Beperkt zichtbare gegevens in het filterlogboek bekijken Voor MediaWiki 1.34 werd dit recht abusefilter-private genoemd - Vereist het recht abusefilter-log-detail
abusefilter-modify-restricted Filters met beperkte handelingen wijzigen Vereist het recht abusefilter-modify sysop
abusefilter-modify-global Globale misbruikfilters aanmaken of aanpassen Vereist het recht abusefilter-modify
abusefilter-revert Alle wijzigingen door een filter terugdraaien sysop
abusefilter-view-private Als beperkt zichtbaar gemarkeerde filters bekijken Vereist het recht abusefilter-view (niet nodig als de groep al het recht abusefilter-modify heeft) sysop
abusefilter-log-private Logboekvermeldingen bekijken van misbruikfilters die als persoonlijk zijn gemarkeerd Vereist het recht abusefilter-log (niet nodig als de groep al het recht abusefilter-modify of abusefilter-view-private heeft) sysop
abusefilter-hide-log Meldingen in het filterlogboek verbergen Vereist het recht abusefilter-log suppress
abusefilter-hidden-log Verborgen meldingen in het filterlogboek bekijken Vereist het recht abusefilter-log suppress
abusefilter-privatedetails-log Het toegangslogboek van beperkt zichtbare logboekgegevens van het misbruikfilter bekijken Voor MediaWiki 1.34 werd dit recht abusefilter-private-log genoemd
abusefilter-modify-blocked-external-domains Blokkades van externe domeinen voor koppelingen aanmaken of wijzigen sysop
abusefilter-bypass-blocked-external-domains Geblokkeerde externe domeinen omzeilen Vereist het recht edit bot
abusefilter-access-protected-vars Filters bekijken en aanmaken die beveiligde variabelen gebruiken sysop
abusefilter-protected-vars-log Logboeken met betrekking tot toegang tot beveiligde variabelewaarden bekijken sysop

Met de volgende voorbeeldconfiguratie kunnen beheerders bijvoorbeeld alles doen wat ze willen met het AbuseFilter en kan iedereen het logboek bekijken en openbare filterinstellingen zien:

$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;
Filters die als privé zijn aangemerkt, kunnen alleen worden bekeken door gebruikers met het recht abusefilter-modify of het recht abusefilter-view-private
Beveiligde filters kunnen alleen worden gemaakt en bekeken door gebruikers met het recht abusefilter-access-protected-vars. Logs met betrekking tot deze filters kunnen alleen worden bekeken door gebruikers met het recht abusefilter-protected-vars-log. Voor meer informatie, zie Regels formaat .

Parameters

Naam variabele Standaardwaarde Beschrijving
$wgAbuseFilterActions
[
    'throttle' => true,
    'warn' => true,
    'disallow' => true,
    'blockautopromote' => true,
    'block' => true,
    'rangeblock' => false,
    'degroup' => false,
    'tag' => true
]
De mogelijke acties die kunnen worden ondernomen door misbruikfilters. Bij het toevoegen van een nieuwe actie, controleren of deze beperkt is in $wgAbuseFilterActionRestrictions en, indien dat zo is, vergeet niet het recht abusefilter-modify-restricted toe te voegen aan de juiste gebruikersgroepen.
$wgAbuseFilterConditionLimit
1000
Het maximum aantal 'voorwaarden' dat kan worden gebruikt wanneer de filters bij een wijziging worden uitgevoerd. (Meer complexe filters vereisen meer 'voorwaarden').
$wgAbuseFilterValidGroups
[
    'default'
]
De lijst met "groepen" waarin filters kunnen worden verdeeld. Standaard is er maar één groep. Andere extensies kunnen andere groepen toevoegen.
$wgAbuseFilterEmergencyDisableThreshold
[
    'default' => 0.05
]
Schakel een filter uit als het overeenkomt met meer dan 2 bewerkingen, die meer dan 5% uitmaken van de acties die zijn gecontroleerd op de groep van het filter in de "waargenomen" periode (maximaal één dag) en het filter in de laatste 86400 seconden (één dag) is gewijzigd. Zie nood throttling.
$wgAbuseFilterEmergencyDisableCount
[
    'default' => 2
]
$wgAbuseFilterEmergencyDisableAge
[
    'default' => 86400
]
$wgAbuseFilterActionRestrictions
[
	"throttle" => false,
	"warn" => false,
	"disallow" => false,
	"blockautopromote" => true,
	"block" => true,
	"rangeblock" => true,
	"degroup" => true,
	"tag" => false
]
Gebruikers moeten de rechten "abusefilter-modify-restricted" en "abusefilter-modify-restricted" hebben om filters te maken of te wijzigen die deze acties uitvoeren.
$wgAbuseFilterNotifications
false
Staat het toe om de extensie te configureren om meldingen van hits te sturen naar Special:RecentChanges of UDP. Beschikbare opties: rc, udp, rcandudp
Voor het versturen van wijzigingen in misbruikfilters naar Special:RecentChanges, gebruik unset($wgLogRestrictions['abusefilter']);.
$wgAbuseFilterNotificationsPrivate
false
Notificaties inschakelen voor private filters.
$wgAbuseFilterCentralDB
null
MW 1.41+ Naam van de database waarin globale filters worden opgeslagen. Vereist dat CentralAuth is geïnstalleerd, anders zullen globale filters niet werken op een wikifarm.
$wgAbuseFilterIsCentral
false
MW 1.41+ Zet deze variabele op 'true' voor de wiki waar globale AbuseFilters in worden opgeslagen. Vereist dat CentralAuth is geïnstalleerd, anders zullen globale filters niet werken op een wikifarm.
$wgAbuseFilterLocallyDisabledGlobalActions
[
	"throttle" => false,
	"warn" => false,
	"disallow" => false,
	"blockautopromote" => false,
	"block" => false,
	"rangeblock" => false,
	"degroup" => false,
	"tag" => false
]
Staat gecentraliseerde filters niet toe om acties te ondernemen als deze variabele de waarde 'true' heeft.
$wgAbuseFilterBlockDuration
'indefinite'
Duur van de blokkades die door AbuseFilter worden gemaakt.
vanaf 1.31.0-wmf.25 kunnen de duur voor elk enkel filter worden gespecificeerd en deze variabele zal dan worden overschreden. Deze variabele wordt alleen gebruikt wanneer de blokkade wordt ingeschakeld om een standaardduur vooraf te selecteren.
$wgAbuseFilterAnonBlockDuration
null
Duur van de blokkades die AbuseFilter op gebruikers die niet zijn aangemeld maakt. De waarde van $wgAbuseFilterBlockDuration wordt gebruikt als deze niet is ingesteld.
vanaf 1.31.0-wmf.25 kunnen de duur voor elk enkel filter worden gespecificeerd en deze variabele zal dan worden overschreden. Deze variabele wordt alleen gebruikt wanneer de blokkade wordt ingeschakeld om een standaardduur vooraf te selecteren.
$wgAbuseFilterBlockAutopromoteDuration
5
Duur, in dagen, waarvoor de automatische promotie van gebruikers wordt geblokkeerd door filters.
$wgAbuseFilterDefaultWarningMessage
[
    'default' => 'abusefilter-warning'
]
Standaard waarschuwingsberichten, per filtergroep
$wgAbuseFilterDefaultDisallowMessage
[
    'default' => 'abusefilter-disallowed'
]
Standaard berichten over niet toegestaan, per filtergroep
$wgAbuseFilterLogIP
true
Of het IP in de abuse_filter_log moet worden opgenomen
$wgAbuseFilterLogIPMaxAge
3 * 30 * 24 * 3600
De ouderdom wordt gebruikt als grens bij het verwijderen van oude IP-loggegevens. De standaard is 3 maanden. Gebruikt door onderhoudsscript purgeOldLogIPData.php.
$wgAbuseFilterProfileActionsCap
10000
Het aantal acties dat aangeeft wanneer de profielstatistieken opnieuw moeten worden ingesteld.
$wgAbuseFilterLogPrivateDetailsAccess
false
Of de toegang tot privé-informatie van een filterlog-invoer wordt geregistreerd.
$wgAbuseFilterPrivateDetailsForceReason
false
Of gebruikers worden gedwongen een reden te geven om toegang te krijgen tot privé-informatie uit een filterlog.
$wgAbuseFilterSlowFilterRuntimeLimit
500
Uitvoeringstijd in milliseconden voordat een filter als langzaam wordt beschouwd.
$wgAbuseFilterRangeBlockSize
[
    'IPv4' => '16',
    'IPv6' => '19',
]
Grootte van het bereik dat door de actie 'rangeblock' wordt geblokkeerd.
$wgAbuseFilterProtectedVariables
[ "user_unnamed_ip" ]
Een array met variabelen die als beveiligd worden beschouwd (beperkte toegang) en het recht abusefilter-access-protected-vars vereisen voor bekijken/gebruiken.

Noodingrepen

AbuseFilter is voorzien van een functie die automatisch filters stopt die recent zijn bewerkt (afsluit) en over een bepaalde drempel van de laatste acties heengaat.

Dit wordt gedaan om schadelijke bewerkingen op de filters te voorkomen in geval dan veel gebruikers die een actie uitvoeren op de wiki of soortgelijke te blokkeren.

De voorwaarde om het filter uit te schakelen hangt af van deze variabelen:

  • $wgAbuseFilterEmergencyDisableThreshold - Percentage van overeenkomsten over het totale aantal acties in de geobserveerde periode.
  • $wgAbuseFilterEmergencyDisableCount - Telling van de overeenkomsten van de filters in de geobserveerde periode.
  • $wgAbuseFilterEmergencyDisableAge - De ouderdom van het betreffende filter. Als de laatste bewerking van het filter ouder is dan dit aantal seconden, zal het filter niet worden afgeknepen, tenzij het al gestopt is.

Deze 'throttled filters' kunnen worden geïdentificeerd in tde lijst met filters (Special:AbuseFilter) met de status Ingeschakeld, Hoog aantal overeenkomsten. Dit knijpen gebeurt in stilte, en er is geen manier om te zien wanneer een filter wordt afgeknepen. Behalve wanneer Extension:Echo/nl is geïnstalleerd, dan wordt er een melding verzonden naar de gebruiker die als laatste het filter heeft gewijzigd.

Wanneer een filter wordt beperkt, voert het geen gevaarlijke actie uit (acties die meestal beperkt zijn tot speciale rechten zoals het blokkeren van de gebruiker of het verwijderen uit groepen, via $wgAbuseFilterActionRestrictions), en alleen "veilige" acties zijn toegestaan (degenen die de lopende actie kunnen waarschuwen of voorkomen). De beperkte filters worden niet automatisch ingeschakeld. Om het beperken in te schakelen, moet u het filter bewerken. Merk op dat u iets van het filter moet veranderen: het veranderen van de aantekeningen van het filter is voldoende.

Het bewerken van het filter werkt de ouderdom bij, het kan ervoor zorgen dat het wordt uitgeschakeld als het opnieuw de voorwaarden bereikt om in een korte periode te worden beperkt sinds de laatste bewerking, wat leidt tot een onbruikbaar filter als uw wiki meer misbruik bewerkingen heeft dan legitieme.

Een filter maken en beheren

Nadat de extensie is geïnstalleerd, kunnen filters worden gemaakt/getest/gewijzigd/verwijderd en zijn de logboeken toegankelijk via de beheerpagina van het misbruikfilter Special:AbuseFilter.

Globale regels

API

AbuseFilter voegt twee API-lijstmodules toe, één voor details van misbruikfilters en één voor de log ervan, omdat het gescheiden is van andere MediaWiki-logs. Het is niet mogelijk om misbruikfilters te maken of te wijzigen met behulp van de API.

list = abusefilters

Lijst informatie over filters

Parameters
  • abfstartid - Het filter-ID waar vanaf er wordt genummerd
  • abfendid - Het filter-ID waar tot wordt genummerd
  • abfdir - De richting waarin het nummeren moet plaatsvinden (ouder, nieuwer)
  • abfshow - Toon alleen filters die aan deze criteria voldoen (ingeschakeld|niet ingeschakeld|verwijderd|niet verwijderd|privaat|niet privaat|beveiligd|niet beveiligd)
  • abflimit - Het maximum aantal filters dat in de lijst moet worden vermeld
  • abfprop - Welke eigenschappen moeten worden opgehaald (id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private)

Wanneer filters privé zijn, zullen sommige van de met abfprop gespecificeerde eigenschappen ontbreken tenzij u de juiste gebruikersrechten heeft.

Voorbeelden
Lijst van niet-private misbruikfilters
Resultaat
{
    "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

Lijst gevallen waarin door een actie een misbruikfilter actief wordt.

Parameters
  • aflstart - Het tijdstempel waarop het nummeren begint
  • aflend - Het tijdstempel waar tot wordt genummerd
  • afldir - De richting waarin het nummeren moet plaatsvinden (ouder, nieuwer)
  • afluser - Toon alleen de gegevens waar de actie is geprobeerd door een bepaalde gebruiker of IP-adres.
  • afltitle - Toon alleen gegevens waar de actie een bepaalde pagina betreft.
  • aflfilter - Toon alleen de gegevens die een bepaald filter-ID hebben geactiveerd
  • afllimit - Het maximum aantal te tonen gegevens
  • aflprop - Welke eigenschappen te verkrijgen: (ids|filter|user|ip|title|action|details|result|timestamp|hidden|revid|wiki)
Voorbeeld
Lijst van gevallen waarin het misbruikfilter is geactiveerd als reactie op acties van de gebruiker "SineBot"
Resultaat
{
    "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"
            }
        ]
    }
}

Mogelijke fouten

  • Sommige gebruikers kunnen ervaren dat het maken van nieuwe filters of het wijzigen van oude filters mislukt en de gebruiker naar de oorspronkelijke pagina wordt doorverwezen. Als de Wiki SSL-certificaten gebruikt, kan deze fout mogelijk te wijten zijn aan de $wgServer waarde, die "http://" is, in plaats van "https://". Een indicatie van deze fout zal zijn dat de browser https waarschuwingen geeft op Special:AbuseFilter pagina's. (Topic:T23dyyih0ofjada5)

Integratie met andere extensies

U kunt AbuseFilter op verschillende manieren integreren met andere extensies.

Variabelen voor filtering toevoegen

Het is mogelijk om variabelen toe te voegen, die gebruikt kunnen worden in misbruikfilters. Een lijst met voorbeelden. Om dat te doen, moet u:

  • Een handler toevoegen voor de hook AbuseFilter-builder . Om een variabele toe te voegen, moet u $builder['vars']['variable_name'] = 'i18n-key'; gebruiken, waar variable_name de naam van de variabele is en i18n-key het fragment van een i18n-key. De volledige key wordt dan abusefilter-edit-builder-vars-{$your_key}.
  • Voeg de i18n-berichten toe die u bij het vorige punt heeft gekozen.
  • Kies een hook handler waar de variabele wordt berekend. Afhankelijk van uw gebruik, u kunt:
    • de hook AbuseFilter-generateTitleVars implementeren; dit is specifiek voor pagina-gerelateerde variabelen;
    • de hook AbuseFilter-generateUserVars implementeren; dit is specifiek voor gebruikersgerelateerde variabelen;
    • de hook AbuseFilter-generateGenericVars implementeren; dit is voor variabelen die niet gebonden zijn aan een specifieke pagina of gebruiker;
    • de hook AbuseFilterAlterVariables implementeren; deze is een wat flexibeler dan de andere hooks, maar het heeft een nadeel: uw variabele zal niet beschikbaar zijn bij het onderzoeken van eerdere RecentChanges-vermeldingen. Als u die functie wilt implementeren (en het wordt aanbevolen om dat te doen), moet u een van de hierboven vermelde hooks en de derde parameter ($RCRow) gebruiken.
  • In de handler zijn er twee manieren om een variabele toe te voegen:
    • De "directe" manier is $vars->setVar( 'var_name', var_value ); aanroepen. Dit is alleen ideaal wanneer de waarde eenvoudig en snel is te berekenen: de waarde wordt berekend, zelfs als geen enkel actief filter deze gebruikt.
    • De 'luie' manier is $vars->setLazyLoadVar( 'var_name', 'method_name', $params ); aanroepen. Hier is 'method_name' een (unieke) identificatiecode die wordt gebruikt om de variabele te berekenen (het wordt aanbevolen om deze te prefixen met de naam van de extensie). Om de methode te registreren, moet u een handlr toevoegen voor de hook AbuseFilter-computeVariable ; daarin moet u controleren of de $method die is gebruikt overeenkomt met uw 'method_name', en zo ja, de variabele berekenen. Ten slotte is $params een reeks parameters die u nodig heeft om de variabele te berekenen; deze worden doorgegeven aan de hook handler computeVariable. Als voorbeeld hiervan kunt u de global_user_groups van CentralAuth bekijken.

Aangepaste acties toevoegen

U kunt aangepaste actie handlers toevoegen, zodat elk filter verdere acties kan uitvoeren. Om dat te doen, kiest u een naam voor de actie ('my-action' vanaf nu), en vervolgens:

  • Maak een class aan met de naam MyAction, die \MediaWiki\Extension\AbuseFilter\Consequence uitbreidt, die ook HookAborterConsequence of ConsequencesDisablerConsequence kan implementeren
  • Voeg een 'subscriber' toe aan de hook AbuseFilterCustomActions; die moet een callback verstrekken zoals gedocumenteerd in de hook-documentatie, die een instantie van de hierboven gecreëerde class teruggeeft, bijvoorbeeld:
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 );
    };
}

Vervolgens moet u de volgende i18n-berichten toevoegen; u kan 'my_action' vervangen door bijvoorbeeld 'block' om te zien waarvoor de berichten zijn:

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

Regelgroepen toevoegen

U kunt ook extra regelgroepen toevoegen, die kunnen worden gebruikt om bestaande misbruikfilters te groeperen. Merk op dat elk filter op dit moment slechts in één groep kan zijn (T116642). Nu is Extension:StructuredDiscussions de enige bekende klant van deze functie. Om dat te doen, moet u:

  • Voeg de naam van de groep toe aan $wgAbuseFilterValidGroups
  • Voeg wat code toe om de filters met uw groep te laten werken. Dat doet AbuseFilter niet uit zichzelf. Om dat te doen, moet u een object AbuseFilterRunner maken, waarbij uw groepsnaam doorgegeven moet worden.

Zie ook