X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiQueryAllImages.php;h=250bee667ff19309a4d5033d69e401e1273d4b9d;hb=82e2c924e473fa3b99bb8e0da71d99b70ec5ca07;hp=ef6bb6ad99434dcb1e0c3e0c351fc4366b46a48d;hpb=0a2297c406a1bcf24a29f59a9596661e097ce665;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiQueryAllImages.php b/includes/api/ApiQueryAllImages.php index ef6bb6ad99..250bee667f 100644 --- a/includes/api/ApiQueryAllImages.php +++ b/includes/api/ApiQueryAllImages.php @@ -26,6 +26,8 @@ * @file */ +use Wikimedia\Rdbms\IDatabase; + /** * Query module to enumerate all available pages. * @@ -85,6 +87,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { $db = $this->getDB(); $params = $this->extractRequestParams(); + $userId = !is_null( $params['user'] ) ? User::idFromName( $params['user'] ) : null; // Table and return fields $this->addTables( 'image' ); @@ -189,7 +192,11 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { // Image filters if ( !is_null( $params['user'] ) ) { - $this->addWhereFld( 'img_user_text', $params['user'] ); + if ( $userId ) { + $this->addWhereFld( 'img_user', $userId ); + } else { + $this->addWhereFld( 'img_user_text', $params['user'] ); + } } if ( $params['filterbots'] != 'all' ) { $this->addTables( 'user_groups' ); @@ -198,9 +205,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { [ 'ug_group' => User::getGroupsWithPermission( 'bot' ), 'ug_user = img_user', - $this->getConfig()->get( 'DisableUserGroupExpiry' ) ? - '1' : - 'ug_expiry IS NULL OR ug_expiry >= ' . $db->addQuotes( $db->timestamp() ) + 'ug_expiry IS NULL OR ug_expiry >= ' . $db->addQuotes( $db->timestamp() ) ] ] ] ); $groupCond = ( $params['filterbots'] == 'nobots' ? 'NULL' : 'NOT NULL' ); @@ -269,7 +274,11 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { if ( $params['sort'] == 'timestamp' ) { $this->addOption( 'ORDER BY', 'img_timestamp' . $sortFlag ); if ( !is_null( $params['user'] ) ) { - $this->addOption( 'USE INDEX', [ 'image' => 'img_usertext_timestamp' ] ); + if ( $userId ) { + $this->addOption( 'USE INDEX', [ 'image' => 'img_user_timestamp' ] ); + } else { + $this->addOption( 'USE INDEX', [ 'image' => 'img_usertext_timestamp' ] ); + } } else { $this->addOption( 'USE INDEX', [ 'image' => 'img_timestamp' ] ); } @@ -417,6 +426,6 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { } public function getHelpUrls() { - return 'https://www.mediawiki.org/wiki/API:Allimages'; + return 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:Allimages'; } }