Merge "Allow partially blocked users to import images"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 5 Sep 2019 18:07:16 +0000 (18:07 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 5 Sep 2019 18:07:16 +0000 (18:07 +0000)
1  2 
maintenance/importImages.php

   * @author Mij <mij@bitchx.it>
   */
  
- use MediaWiki\MediaWikiServices;
  require_once __DIR__ . '/Maintenance.php';
  
+ use MediaWiki\MediaWikiServices;
  class ImportImages extends Maintenance {
  
        public function __construct() {
        public function execute() {
                global $wgFileExtensions, $wgUser, $wgRestrictionLevels;
  
+               $permissionManager = MediaWikiServices::getInstance()->getPermissionManager();
                $processed = $added = $ignored = $skipped = $overwritten = $failed = 0;
  
                $this->output( "Importing Files\n\n" );
  
                                if ( $checkUserBlock && ( ( $processed % $checkUserBlock ) == 0 ) ) {
                                        $user->clearInstanceCache( 'name' ); // reload from DB!
-                                       // @TODO Use PermissionManager::isBlockedFrom() instead.
-                                       if ( $user->getBlock() ) {
-                                               $this->output( $user->getName() . " was blocked! Aborting.\n" );
-                                               break;
+                                       if ( $permissionManager->isBlockedFrom( $user, $title ) ) {
+                                               $this->output(
+                                                       "{$user->getName()} is blocked from {$title->getPrefixedText()}! skipping.\n"
+                                               );
+                                               $skipped++;
+                                               continue;
                                        }
                                }
  
                                                # Protect the file
                                                $this->output( "\nWaiting for replica DBs...\n" );
                                                // Wait for replica DBs.
 -                                              sleep( 2.0 ); # Why this sleep?
 +                                              sleep( 2 ); # Why this sleep?
                                                wfWaitForSlaves();
  
                                                $this->output( "\nSetting image restrictions ... " );