if ( $revCount > 0 && $enumRevMode ) {
$this->dieWithError(
- [ 'apierror-revisions-nolist', $this->getModulePrefix() ], 'invalidparammix'
+ [ 'apierror-revisions-norevids', $this->getModulePrefix() ], 'invalidparammix'
);
}
if ( $this->token !== null || $pageCount > 0 ) {
$opts[] = 'page';
}
- if ( $this->fetchContent ) {
- $opts[] = 'text';
- }
if ( $this->fld_user ) {
$opts[] = 'user';
}
if ( $resultPageSet === null && $this->fetchContent ) {
// For each page we will request, the user must have read rights for that page
- $user = $this->getUser();
$status = Status::newGood();
+ $user = $this->getUser();
+
/** @var Title $title */
foreach ( $pageSet->getGoodTitles() as $title ) {
- if ( !$title->userCan( 'read', $user ) ) {
+ if ( !$this->getPermissionManager()->userCan( 'read', $user, $title ) ) {
$status->fatal( ApiMessage::create(
[ 'apierror-cannotviewtitle', wfEscapeWikiText( $title->getPrefixedText() ) ],
'accessdenied'
$this->addOption( 'LIMIT', $this->limit + 1 );
+ // T224017: `rev_timestamp` is never the correct index to use for this module, but
+ // MariaDB (10.1.37-39) sometimes insists on trying to use it anyway. Tell it not to.
+ $this->addOption( 'IGNORE INDEX', [ 'revision' => 'rev_timestamp' ] );
+
$count = 0;
$generated = [];
$hookData = [];