Merge "Make sure database update succeeds from older database versions too."
[lhc/web/wiklou.git] / maintenance / wrapOldPasswords.php
index 0a859c0..ef9e46e 100644 (file)
  * @file
  * @ingroup Maintenance
  */
+
 require_once __DIR__ . '/Maintenance.php';
 
+use MediaWiki\MediaWikiServices;
+
 /**
  * Maintenance script to wrap all passwords of a certain type in a specified layered
  * type that wraps around the old type.
@@ -40,26 +43,19 @@ class WrapOldPasswords extends Maintenance {
        }
 
        public function execute() {
-               global $wgAuth;
-
-               if ( !$wgAuth->allowSetLocalPassword() ) {
-                       $this->error( '$wgAuth does not allow local passwords. Aborting.', true );
-               }
-
-               $passwordFactory = new PasswordFactory();
-               $passwordFactory->init( RequestContext::getMain()->getConfig() );
+               $passwordFactory = MediaWikiServices::getInstance()->getPasswordFactory();
 
                $typeInfo = $passwordFactory->getTypes();
                $layeredType = $this->getOption( 'type' );
 
                // Check that type exists and is a layered type
                if ( !isset( $typeInfo[$layeredType] ) ) {
-                       $this->error( 'Undefined password type', true );
+                       $this->fatalError( 'Undefined password type' );
                }
 
                $passObj = $passwordFactory->newFromType( $layeredType );
                if ( !$passObj instanceof LayeredParameterizedPassword ) {
-                       $this->error( 'Layered parameterized password type must be used.', true );
+                       $this->fatalError( 'Layered parameterized password type must be used.' );
                }
 
                // Extract the first layer type
@@ -71,6 +67,7 @@ class WrapOldPasswords extends Maintenance {
                $typeCond = 'user_password' . $dbw->buildLike( ":$firstType:", $dbw->anyString() );
 
                $minUserId = 0;
+               $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory();
                do {
                        $this->beginTransaction( $dbw, __METHOD__ );
 
@@ -83,7 +80,7 @@ class WrapOldPasswords extends Maintenance {
                                __METHOD__,
                                [
                                        'ORDER BY' => 'user_id',
-                                       'LIMIT' => $this->mBatchSize,
+                                       'LIMIT' => $this->getBatchSize(),
                                        'LOCK IN SHARE MODE',
                                ]
                        );
@@ -113,7 +110,7 @@ class WrapOldPasswords extends Maintenance {
                        }
 
                        $this->commitTransaction( $dbw, __METHOD__ );
-                       LBFactory::waitForReplication();
+                       $lbFactory->waitForReplication();
 
                        // Clear memcached so old passwords are wiped out
                        foreach ( $updateUsers as $user ) {
@@ -123,5 +120,5 @@ class WrapOldPasswords extends Maintenance {
        }
 }
 
-$maintClass = "WrapOldPasswords";
+$maintClass = WrapOldPasswords::class;
 require_once RUN_MAINTENANCE_IF_MAIN;