jenkins-bot has submitted this change and it was merged.

Change subject: Use MovePageCheckPermissions hook if possible
......................................................................


Use MovePageCheckPermissions hook if possible

Change-Id: Ic5026384b92a0d68d628397ffe1de6e5b6183f02
---
M TitleBlacklist.hooks.php
M TitleBlacklist.php
2 files changed, 42 insertions(+), 13 deletions(-)

Approvals:
  Aaron Schulz: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/TitleBlacklist.hooks.php b/TitleBlacklist.hooks.php
index 78379a3..6050641 100644
--- a/TitleBlacklist.hooks.php
+++ b/TitleBlacklist.hooks.php
@@ -68,7 +68,36 @@
        }
 
        /**
-        * AbortMove hook
+        * MovePageCheckPermissions hook (1.25+)
+        *
+        * @param Title $oldTitle
+        * @param Title $newTitle
+        * @param User $user
+        * @param $reason
+        * @param Status $status
+        * @return bool
+        */
+       public static function onMovePageCheckPermissions( Title $oldTitle, 
Title $newTitle, User $user, $reason, Status $status ) {
+               $titleBlacklist = TitleBlacklist::singleton();
+               $blacklisted = $titleBlacklist->userCannot( $newTitle, $user, 
'move' );
+               if ( !$blacklisted ) {
+                       $blacklisted = $titleBlacklist->userCannot( $oldTitle, 
$user, 'edit' );
+               }
+               if ( $blacklisted instanceof TitleBlacklistEntry ) {
+                       $status->fatal( $blacklisted->getErrorMessage( 'move' ),
+                               $blacklisted->getRaw(),
+                               $oldTitle->getFullText(),
+                               $newTitle->getFullText() );
+                       return false;
+               }
+
+               return true;
+       }
+
+       /**
+        * AbortMove hook (<1.24)
+        *
+        * @todo: Remove once 1.24 support is dropped
         *
         * @param $old Title
         * @param $nt Title
@@ -76,20 +105,19 @@
         * @param $err
         * @return bool
         */
-       public static function abortMove( $old, $nt, $user, &$err ) {
-               $titleBlacklist = TitleBlacklist::singleton();
-               $blacklisted = $titleBlacklist->userCannot( $nt, $user, 'move' 
);
-               if ( !$blacklisted ) {
-                       $blacklisted = $titleBlacklist->userCannot( $old, 
$user, 'edit' );
+       public static function abortMove( $old, $nt, $user, &$err, $reason ) {
+               if ( method_exists( 'MovePage', 'checkPermissions' ) ) {
+                       // Don't use this hook, use MovePageCheckPermissions 
instead
+                       return true;
                }
-               if ( $blacklisted instanceof TitleBlacklistEntry ) {
-                       $err = wfMessage( $blacklisted->getErrorMessage( 'move' 
),
-                               $blacklisted->getRaw(),
-                               $old->getFullText(),
-                               $nt->getFullText() )->parse();
-                       return false;
+
+               $status = new Status();
+               self::onMovePageCheckPermissions( $old, $nt, $user, $reason, 
$status );
+               if ( !$status->isOK() ) {
+                       $err = $status->getHTML();
                }
-               return true;
+
+               return $status->isOK();
        }
 
        /**
diff --git a/TitleBlacklist.php b/TitleBlacklist.php
index 7b5c67d..f07bb0b 100644
--- a/TitleBlacklist.php
+++ b/TitleBlacklist.php
@@ -78,6 +78,7 @@
 $wgHooks['getUserPermissionsErrorsExpensive'][] = 
'TitleBlacklistHooks::userCan';
 $wgHooks['TitleGetEditNotices'][] = 
'TitleBlacklistHooks::displayBlacklistOverrideNotice';
 $wgHooks['AbortMove'][] = 'TitleBlacklistHooks::abortMove';
+$wgHooks['MovePageCheckPermissions'][] = 
'TitleBlacklistHooks::onMovePageCheckPermissions';
 $wgHooks['AbortNewAccount'][] = 'TitleBlacklistHooks::abortNewAccount';
 $wgHooks['AbortAutoAccount'][] = 'TitleBlacklistHooks::abortNewAccount';
 $wgHooks['EditFilter'][] = 'TitleBlacklistHooks::validateBlacklist';

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic5026384b92a0d68d628397ffe1de6e5b6183f02
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/TitleBlacklist
Gerrit-Branch: master
Gerrit-Owner: Legoktm <legoktm.wikipe...@gmail.com>
Gerrit-Reviewer: Aaron Schulz <asch...@wikimedia.org>
Gerrit-Reviewer: Jackmcbarn <jackmcb...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to