Legoktm has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/169602

Change subject: LocalPageMoveJob: Use MovePage
......................................................................

LocalPageMoveJob: Use MovePage

This probably depends upon Ic502638 in MediaWiki core.
Change-Id: Ic5026384b92a0d68d628397ffe1de6e5b6183f02
---
M includes/LocalRenameJob/LocalPageMoveJob.php
1 file changed, 16 insertions(+), 58 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/CentralAuth 
refs/changes/02/169602/1

diff --git a/includes/LocalRenameJob/LocalPageMoveJob.php 
b/includes/LocalRenameJob/LocalPageMoveJob.php
index 8d7acf2..e798fb3 100644
--- a/includes/LocalRenameJob/LocalPageMoveJob.php
+++ b/includes/LocalRenameJob/LocalPageMoveJob.php
@@ -5,14 +5,9 @@
  */
 class LocalPageMoveJob extends Job {
        /**
-        * @var bool
+        * @var User
         */
-       private $setAFOverride;
-
-       /**
-        * @var bool
-        */
-       private $setTBOverride;
+       private $user;
 
        /**
         * @param array $params
@@ -29,7 +24,7 @@
                // Need to set $wgUser so the move log is attributed correctly.
                global $wgUser;
                $oldUser = $wgUser;
-               $wgUser = User::newFromName( $this->params['renamer'] );
+               $this->user = User::newFromName( $this->params['renamer'] );
                foreach ( $this->params['pages'] as $current => $target ) {
                        $this->movePage(
                                Title::newFromText( $current ),
@@ -42,58 +37,21 @@
        }
 
        protected function movePage( Title $oldPage, Title $newPage ) {
-               if ( $newPage->exists() && !$oldPage->isValidMoveTarget( 
$newPage ) ) {
-                       wfDebugLog( 'CentralAuthRename', "Could not move 
$oldPage to $newPage" );
-                       // @todo log this somewhere publicly?
-               } else {
-                       $msg = wfMessage( 'centralauth-rename-movelog' )
-                               ->params( $this->params['from'], 
$this->params['to'] )
-                               ->inContentLanguage()
-                               ->text();
-                       $errors = $oldPage->moveTo( $newPage, false, $msg, 
!$this->params['suppressredirects'] );
-                       if ( is_array( $errors ) ) {
-                               // AbuseFilter or TitleBlacklist might be 
interfering, bug 67875
-                               if ( $errors[0][0] === 'hookaborted' ) {
-                                       wfDebugLog( 'CentralAuthRename', "Page 
move prevented by hook: {$oldPage->getPrefixedText()} -> 
{$newPage->getPrefixedText()}" );
-                                       $this->disableMoveBlockingThings();
-                                       // Do it again
-                                       $oldPage->moveTo( $newPage, false, 
$msg, !$this->params['suppressredirects'] );
-                                       $this->enableMoveBlockingThings();
-                               }
-                       }
+               $mp = new MovePage( $oldPage, $newPage );
+               $valid = $mp->isValidMove();
+               if ( !$valid->isOK() ) {
+                       wfDebugLog( 'CentralAuthRename', "Invalid page move: 
{$oldPage->getPrefixedText()} -> {$newPage->getPrefixedText()}" );
+                       return;
                }
 
-       }
+               $msg = wfMessage( 'centralauth-rename-movelog' )
+                       ->params( $this->params['from'], $this->params['to'] )
+                       ->inContentLanguage()
+                       ->text();
 
-       /**
-        * FIXME: on a of scale one to evil, this is super evil
-        */
-       private function disableMoveBlockingThings() {
-               global $wgUser;
-               if ( !$wgUser->isAllowed( 'abusefilter-bypass' ) ) {
-                       $wgUser->mRights[] = 'abusefilter-bypass';
-                       $this->setAFOverride = true;
-               }
-
-               if ( !$wgUser->isAllowed( 'tboverride' ) ) {
-                       $wgUser->mRights[] = 'tboverride';
-                       $this->setTBOverride = true;
+               $status = $mp->move( $this->user, $msg, true );
+               if ( !$status->isOK() ) {
+                       wfDebugLog( 'CentralAuthRename', "Page move failed: 
{$oldPage->getPrefixedText()} -> {$newPage->getPrefixedText()}" );
                }
        }
-
-       private function enableMoveBlockingThings() {
-               global $wgUser;
-               $rights = array();
-               if ( $this->setAFOverride ) {
-                       $rights[] = 'abusefilter-bypass';
-                       $this->setAFOverride = false;
-               }
-               if ( $this->setTBOverride ) {
-                       $rights[] = 'tboverride';
-                       $this->setTBOverride = false;
-               }
-
-               $wgUser->mRights = array_diff( $wgUser->mRights, $rights );
-       }
-
-}
\ No newline at end of file
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/169602
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic5026384b92a0d68d628397ffe1de6e5b6183f02
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/CentralAuth
Gerrit-Branch: master
Gerrit-Owner: Legoktm <legoktm.wikipe...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to