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