From aca802509e561a79a3cd532ae060e73423146c1b Mon Sep 17 00:00:00 2001 From: tzhelyazkova Date: Thu, 21 Mar 2019 09:05:27 +0100 Subject: [PATCH] Add a user preference to opt in or out of a confirmation prompt for rollbacks. Bug: T199537 Change-Id: I2f08ef5f8c38f23b282e130d040681fc060b6b00 --- includes/preferences/DefaultPreferencesFactory.php | 12 +++++++++++- .../preferences/DefaultPreferencesFactoryTest.php | 4 ---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/includes/preferences/DefaultPreferencesFactory.php b/includes/preferences/DefaultPreferencesFactory.php index 36518823e9..a42726f7b4 100644 --- a/includes/preferences/DefaultPreferencesFactory.php +++ b/includes/preferences/DefaultPreferencesFactory.php @@ -121,7 +121,7 @@ class DefaultPreferencesFactory implements PreferencesFactory { $this->skinPreferences( $user, $context, $preferences ); $this->datetimePreferences( $user, $context, $preferences ); $this->filesPreferences( $context, $preferences ); - $this->renderingPreferences( $context, $preferences ); + $this->renderingPreferences( $user, $context, $preferences ); $this->editingPreferences( $user, $context, $preferences ); $this->rcPreferences( $user, $context, $preferences ); $this->watchlistPreferences( $user, $context, $preferences ); @@ -800,10 +800,12 @@ class DefaultPreferencesFactory implements PreferencesFactory { } /** + * @param User $user * @param MessageLocalizer $l10n * @param array &$defaultPreferences */ protected function renderingPreferences( + User $user, MessageLocalizer $l10n, &$defaultPreferences ) { @@ -861,6 +863,14 @@ class DefaultPreferencesFactory implements PreferencesFactory { 'section' => 'rendering/advancedrendering', 'label-message' => 'tog-numberheadings', ]; + + if ( $user->isAllowed( 'rollback' ) ) { + $defaultPreferences['showrollbackconfirmation'] = [ + 'type' => 'toggle', + 'section' => 'rendering/advancedrendering', + 'label-message' => 'tog-showrollbackconfirmation', + ]; + } } /** diff --git a/tests/phpunit/includes/preferences/DefaultPreferencesFactoryTest.php b/tests/phpunit/includes/preferences/DefaultPreferencesFactoryTest.php index 8142f3979b..94c0667b29 100644 --- a/tests/phpunit/includes/preferences/DefaultPreferencesFactoryTest.php +++ b/tests/phpunit/includes/preferences/DefaultPreferencesFactoryTest.php @@ -87,8 +87,6 @@ class DefaultPreferencesFactoryTest extends \MediaWikiTestCase { * @covers MediaWiki\Preferences\DefaultPreferencesFactory::renderingPreferences() */ public function testShowRollbackConfIsHiddenForUsersWithoutRollbackRights() { - // TODO Remove temporary skip marker once feature is added back in - $this->markTestSkipped(); $userMock = $this->getMockBuilder( User::class ) ->disableOriginalConstructor() ->getMock(); @@ -109,8 +107,6 @@ class DefaultPreferencesFactoryTest extends \MediaWikiTestCase { * @covers MediaWiki\Preferences\DefaultPreferencesFactory::renderingPreferences() */ public function testShowRollbackConfIsShownForUsersWithRollbackRights() { - // TODO Remove temporary skip marker once feature is added back in - $this->markTestSkipped(); $userMock = $this->getMockBuilder( User::class ) ->disableOriginalConstructor() ->getMock(); -- 2.20.1