Merge "Add stats for block errors on create/edit actions"
This commit is contained in:
commit
d2b7662bba
1 changed files with 31 additions and 0 deletions
|
|
@ -21,6 +21,7 @@
|
|||
*/
|
||||
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use MediaWiki\MediaWikiServices;
|
||||
|
||||
/**
|
||||
* This abstract class implements many basic API functions, and is the base of
|
||||
|
|
@ -2069,11 +2070,41 @@ abstract class ApiBase extends ContextSource {
|
|||
foreach ( (array)$actions as $action ) {
|
||||
$errors = array_merge( $errors, $title->getUserPermissionsErrors( $action, $user ) );
|
||||
}
|
||||
|
||||
if ( $errors ) {
|
||||
// track block notices
|
||||
if ( $this->getConfig()->get( 'EnableBlockNoticeStats' ) ) {
|
||||
$this->trackBlockNotices( $errors );
|
||||
}
|
||||
|
||||
$this->dieStatus( $this->errorArrayToStatus( $errors, $user ) );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Keep track of errors messages resulting from a block
|
||||
*
|
||||
* @param array $errors
|
||||
*/
|
||||
private function trackBlockNotices( array $errors ) {
|
||||
$errorMessageKeys = [
|
||||
'blockedtext',
|
||||
'blockedtext-partial',
|
||||
'autoblockedtext',
|
||||
'systemblockedtext',
|
||||
];
|
||||
|
||||
$statsd = MediaWikiServices::getInstance()->getStatsdDataFactory();
|
||||
|
||||
foreach ( $errors as $error ) {
|
||||
if ( in_array( $error[0], $errorMessageKeys ) ) {
|
||||
$wiki = $this->getConfig()->get( 'DBname' );
|
||||
$statsd->increment( 'BlockNotices.' . $wiki . '.MediaWikiApi.returned' );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Will only set a warning instead of failing if the global $wgDebugAPI
|
||||
* is set to true. Otherwise behaves exactly as self::dieWithError().
|
||||
|
|
|
|||
Loading…
Reference in a new issue