aboutsummaryrefslogtreecommitdiffstats
path: root/includes/diff
diff options
context:
space:
mode:
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>2023-09-06 18:43:32 +0000
committerGerrit Code Review <gerrit@wikimedia.org>2023-09-06 18:43:32 +0000
commitbbfa65643fb7ee2ea58d0254fb60d8c015f853be (patch)
tree9440dd4e0f0546b1e9e9fd5bce3840f77fc2e054 /includes/diff
parent7122b6b2c773d742b0a2b934cd0e7ef637e03525 (diff)
parent2911de600f7760b9143d3bed16eab2cc0986c67d (diff)
downloadmediawikicore-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.php19
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(),