From 9fa6ef5a9569e57a8cb1bd6d7642dee36690da74 Mon Sep 17 00:00:00 2001 From: Marius Hoch Date: Fri, 21 Dec 2012 18:43:48 +0100 Subject: [PATCH] Add hooks to AF that allow altering User and Title specific vars Added two hooks to the AbuseFilter, one that allows altering of the variables created for a specific user and one for title specific variables. This a much cleaner way to add title or user specific variables than using the current general-purpose hooks. Change-Id: I7374846346dd220b5d0633c11c134030f98bcf00 --- AbuseFilter.class.php | 4 ++++ hooks.txt | 25 +++++++++++++++++-------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/AbuseFilter.class.php b/AbuseFilter.class.php index 906ae474d..12dcf91e9 100644 --- a/AbuseFilter.class.php +++ b/AbuseFilter.class.php @@ -196,6 +196,8 @@ class AbuseFilter { $vars->setLazyLoadVar( 'user_blocked', 'simple-user-accessor', array( 'user' => $user->getName(), 'method' => 'isBlocked' ) ); + wfRunHooks( 'AbuseFilter-generateUserVars', array( $vars, $user ) ); + return $vars; } @@ -294,6 +296,8 @@ class AbuseFilter { 'namespace' => $title->getNamespace() ) ); + wfRunHooks( 'AbuseFilter-generateTitleVars', array( $vars, $title, $prefix ) ); + return $vars; } diff --git a/hooks.txt b/hooks.txt index 33e58581d..b465cb1e7 100644 --- a/hooks.txt +++ b/hooks.txt @@ -10,21 +10,30 @@ to add events to the AbuseFilter extension. 'AbuseFilter-builder': Allows overwriting of the builder values returned by AbuseFilter::getBuilderValues &$realValues: Builder values +'AbuseFilter-computeVariable': Like AbuseFilter-interceptVariable but called if the requested method wasn't found. +Return true to indicate that the method is known to the hook and was computed successful. +$method: Method to generate the variable +$vars: AbuseFilterVariableHolder +$parameters: Parameters with data to compute the value +&$result: Result of the computation + 'AbuseFilter-filterAction': Allows overwriting of abusefilter variables in AbuseFilter::filterAction just before they're checked against filters. -&$vars: AbuseFilterVariableHolder with variables +$vars: AbuseFilterVariableHolder with variables $title: Title object +'AbuseFilter-generateTitleVars': Allows altering the variables generated for a title +$vars: AbuseFilterVariableHolder +$title: Title object +$prefix: Variable name prefix + +'AbuseFilter-generateUserVars': Allows altering the variables generated for a specific user +$vars: AbuseFilterVariableHolder +$user: User object + 'AbuseFilter-interceptVariable': Called before a variable is set in AFComputedVariable::compute to be able to set it before the core code runs. Return false to make the function return right after. $method: Method to generate the variable $vars: AbuseFilterVariableHolder $parameters: Parameters with data to compute the value &$result: Result of the computation - -'AbuseFilter-computeVariable': Like AbuseFilter-interceptVariable but called if the requested method wasn't found. -Return true to indicate that the method is known to the hook and was computed successful. -$method: Method to generate the variable -$vars: AbuseFilterVariableHolder -$parameters: Parameters with data to compute the value -&$result: Result of the computation