diff options
author | jenkins-bot <jenkins-bot@gerrit.wikimedia.org> | 2023-09-06 18:43:32 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@wikimedia.org> | 2023-09-06 18:43:32 +0000 |
commit | bbfa65643fb7ee2ea58d0254fb60d8c015f853be (patch) | |
tree | 9440dd4e0f0546b1e9e9fd5bce3840f77fc2e054 /includes/diff | |
parent | 7122b6b2c773d742b0a2b934cd0e7ef637e03525 (diff) | |
parent | 2911de600f7760b9143d3bed16eab2cc0986c67d (diff) | |
download | mediawikicore-bbfa65643fb7ee2ea58d0254fb60d8c015f853be.tar.gz mediawikicore-bbfa65643fb7ee2ea58d0254fb60d8c015f853be.zip |
Merge "ArchivedRevisionLookup: Allow lookups using just the revision ID"
Diffstat (limited to 'includes/diff')
-rw-r--r-- | includes/diff/DifferenceEngine.php | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/includes/diff/DifferenceEngine.php b/includes/diff/DifferenceEngine.php index aa997ee4f7e9..741a755d4659 100644 --- a/includes/diff/DifferenceEngine.php +++ b/includes/diff/DifferenceEngine.php @@ -34,6 +34,7 @@ use MediaWiki\Page\ParserOutputAccess; use MediaWiki\Page\WikiPageFactory; use MediaWiki\Permissions\Authority; use MediaWiki\Permissions\PermissionStatus; +use MediaWiki\Revision\ArchivedRevisionLookup; use MediaWiki\Revision\BadRevisionException; use MediaWiki\Revision\RevisionRecord; use MediaWiki\Revision\RevisionStore; @@ -243,6 +244,8 @@ class DifferenceEngine extends ContextSource { */ private $revisionStore; + private ArchivedRevisionLookup $archivedRevisionLookup; + /** @var HookRunner */ private $hookRunner; @@ -288,6 +291,7 @@ class DifferenceEngine extends ContextSource { $this->linkRenderer = $services->getLinkRenderer(); $this->contentHandlerFactory = $services->getContentHandlerFactory(); $this->revisionStore = $services->getRevisionStore(); + $this->archivedRevisionLookup = $services->getArchivedRevisionLookup(); $this->hookRunner = new HookRunner( $services->getHookContainer() ); $this->wikiPageFactory = $services->getWikiPageFactory(); $this->userOptionsLookup = $services->getUserOptionsLookup(); @@ -538,18 +542,9 @@ class DifferenceEngine extends ContextSource { */ public function deletedLink( $id ) { if ( $this->getAuthority()->isAllowed( 'deletedhistory' ) ) { - $arQuery = $this->revisionStore->getArchiveQueryInfo(); - $row = $this->dbProvider->getReplicaDatabase()->selectRow( - $arQuery['tables'], - array_merge( $arQuery['fields'], [ 'ar_namespace', 'ar_title' ] ), - [ 'ar_rev_id' => $id ], - __METHOD__, - [], - $arQuery['joins'] - ); - if ( $row ) { - $revRecord = $this->revisionStore->newRevisionFromArchiveRow( $row ); - $title = Title::makeTitleSafe( $row->ar_namespace, $row->ar_title ); + $revRecord = $this->archivedRevisionLookup->getArchivedRevisionRecord( null, $id ); + if ( $revRecord ) { + $title = Title::newFromPageIdentity( $revRecord->getPage() ); return SpecialPage::getTitleFor( 'Undelete' )->getFullURL( [ 'target' => $title->getPrefixedText(), |