aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>2025-03-26 20:25:34 +0000
committerGerrit Code Review <gerrit@wikimedia.org>2025-03-26 20:25:34 +0000
commit3faad14e9eaf6ace2af61e65fde0ecdd806e7e27 (patch)
treea15961fc64f0b03c80941e8a8b1d38c9790edc6f
parentc35fa378279862e2b71ae0e1c1372697c9059f49 (diff)
parent032d94b4a6dbf46db9a39028813d920727c6f7ba (diff)
downloadmediawikicore-3faad14e9eaf6ace2af61e65fde0ecdd806e7e27.tar.gz
mediawikicore-3faad14e9eaf6ace2af61e65fde0ecdd806e7e27.zip
Merge "page: Remove deprecated PageArchive::undeleteAsUser"
-rw-r--r--RELEASE-NOTES-1.441
-rw-r--r--includes/page/PageArchive.php59
-rw-r--r--tests/phpunit/includes/page/PageArchiveTest.php55
3 files changed, 1 insertions, 114 deletions
diff --git a/RELEASE-NOTES-1.44 b/RELEASE-NOTES-1.44
index 79797ef6d03d..6e1a1715fc15 100644
--- a/RELEASE-NOTES-1.44
+++ b/RELEASE-NOTES-1.44
@@ -259,6 +259,7 @@ because of Phabricator reports.
* The hook OutputPageMakeCategoryLinks, deprecated in 1.43, has been removed.
* The methods Skin::getFooterIcons and ::makeFooterIcon are final and
overriding is no longer supported.
+* PageArchive::undeleteAsUser, deprecated since 1.35, has been removed.
* DatabaseBlock::getQueryInfo and ::getRangeCond, deprecated since 1.43, have
been removed.
* The IDatabase transaction lifecycle callbacks onTransactionResolution(),
diff --git a/includes/page/PageArchive.php b/includes/page/PageArchive.php
index 3897eb88312f..4427b57663dc 100644
--- a/includes/page/PageArchive.php
+++ b/includes/page/PageArchive.php
@@ -23,7 +23,6 @@ namespace MediaWiki\Page;
use MediaWiki\FileRepo\File\FileSelectQueryBuilder;
use MediaWiki\MediaWikiServices;
use MediaWiki\Title\Title;
-use MediaWiki\User\UserIdentity;
use Wikimedia\Rdbms\IExpression;
use Wikimedia\Rdbms\IReadableDatabase;
use Wikimedia\Rdbms\IResultWrapper;
@@ -156,64 +155,6 @@ class PageArchive {
return $queryBuilder->caller( __METHOD__ )->fetchResultSet();
}
- /**
- * Restore the given (or all) text and file revisions for the page.
- * Once restored, the items will be removed from the archive tables.
- * The deletion log will be updated with an undeletion notice.
- *
- * @since 1.35
- * @deprecated since 1.38, use UndeletePage instead, hard-deprecated since 1.43
- *
- * @param array $timestamps Pass an empty array to restore all revisions,
- * otherwise list the ones to undelete.
- * @param UserIdentity $user
- * @param string $comment
- * @param array $fileVersions
- * @param bool $unsuppress
- * @param string|string[]|null $tags Change tags to add to log entry
- * ($user should be able to add the specified tags before this is called)
- * @return array|false [ number of file revisions restored, number of image revisions
- * restored, log message ] on success, false on failure.
- */
- public function undeleteAsUser(
- $timestamps,
- UserIdentity $user,
- $comment = '',
- $fileVersions = [],
- $unsuppress = false,
- $tags = null
- ) {
- wfDeprecated( __METHOD__, '1.43' );
- $services = MediaWikiServices::getInstance();
- $page = $services->getWikiPageFactory()->newFromTitle( $this->title );
- $user = $services->getUserFactory()->newFromUserIdentity( $user );
- $up = $services->getUndeletePageFactory()->newUndeletePage( $page, $user );
- if ( is_string( $tags ) ) {
- $tags = [ $tags ];
- } elseif ( $tags === null ) {
- $tags = [];
- }
- $status = $up
- ->setUndeleteOnlyTimestamps( $timestamps )
- ->setUndeleteOnlyFileVersions( $fileVersions ?: [] )
- ->setUnsuppress( $unsuppress )
- ->setTags( $tags ?: [] )
- ->undeleteUnsafe( $comment );
- // BC with old return format
- if ( $status->isGood() ) {
- $restoredRevs = $status->getValue()[UndeletePage::REVISIONS_RESTORED];
- $restoredFiles = $status->getValue()[UndeletePage::FILES_RESTORED];
- if ( $restoredRevs === 0 && $restoredFiles === 0 ) {
- $ret = false;
- } else {
- $ret = [ $restoredRevs, $restoredFiles, $comment ];
- }
- } else {
- $ret = false;
- }
- return $ret;
- }
-
}
/** @deprecated class alias since 1.44 */
diff --git a/tests/phpunit/includes/page/PageArchiveTest.php b/tests/phpunit/includes/page/PageArchiveTest.php
index 8943fe0c08fe..ba7dd7ae2419 100644
--- a/tests/phpunit/includes/page/PageArchiveTest.php
+++ b/tests/phpunit/includes/page/PageArchiveTest.php
@@ -10,7 +10,6 @@ use MediaWiki\Revision\SlotRecord;
use MediaWiki\Tests\User\TempUser\TempUserTestTrait;
use MediaWiki\Title\Title;
use MediaWiki\User\UserIdentityValue;
-use Wikimedia\IPUtils;
/**
* @group Database
@@ -89,60 +88,6 @@ class PageArchiveTest extends MediaWikiIntegrationTestCase {
$this->deletePage( $page, '', $user );
}
- /**
- * @covers \MediaWiki\Page\PageArchive::undeleteAsUser
- */
- public function testUndeleteRevisions() {
- $this->hideDeprecated( PageArchive::class . '::undeleteAsUser' );
-
- // TODO: MCR: Test undeletion with multiple slots. Check that slots remain untouched.
- $revisionStore = $this->getServiceContainer()->getRevisionStore();
-
- // First make sure old revisions are archived
- $dbr = $this->getDb();
- $row = $revisionStore->newArchiveSelectQueryBuilder( $dbr )
- ->joinComment()
- ->where( [ 'ar_rev_id' => $this->ipRev->getId() ] )
- ->caller( __METHOD__ )->fetchRow();
- $this->assertEquals( $this->ipEditor, $row->ar_user_text );
-
- // Should not be in revision
- $row = $dbr->newSelectQueryBuilder()
- ->select( '1' )
- ->from( 'revision' )
- ->where( [ 'rev_id' => $this->ipRev->getId() ] )
- ->fetchRow();
- $this->assertFalse( $row );
-
- // Should not be in ip_changes
- $row = $dbr->newSelectQueryBuilder()
- ->select( '1' )
- ->from( 'ip_changes' )
- ->where( [ 'ipc_rev_id' => $this->ipRev->getId() ] )
- ->fetchRow();
- $this->assertFalse( $row );
-
- // Restore the page
- $archive = new PageArchive( $this->archivedPage );
- $archive->undeleteAsUser( [], $this->getTestSysop()->getUser() );
-
- // Should be back in revision
- $row = $revisionStore->newSelectQueryBuilder( $dbr )
- ->where( [ 'rev_id' => $this->ipRev->getId() ] )
- ->caller( __METHOD__ )->fetchRow();
- $this->assertNotFalse( $row, 'row exists in revision table' );
- $this->assertEquals( $this->ipEditor, $row->rev_user_text );
-
- // Should be back in ip_changes
- $row = $dbr->newSelectQueryBuilder()
- ->select( [ 'ipc_hex' ] )
- ->from( 'ip_changes' )
- ->where( [ 'ipc_rev_id' => $this->ipRev->getId() ] )
- ->fetchRow();
- $this->assertNotFalse( $row, 'row exists in ip_changes table' );
- $this->assertEquals( IPUtils::toHex( $this->ipEditor ), $row->ipc_hex );
- }
-
protected function getExpectedArchiveRows() {
return [
[