Merge "API: Allow anonymous CORS from anywhere, when specifically requested"
[lhc/web/wiklou.git] / maintenance / createAndPromote.php
index 848c2f7..3591b9c 100644 (file)
@@ -56,6 +56,8 @@ class CreateAndPromote extends Maintenance {
        }
 
        public function execute() {
+               global $wgDisableAuthManager;
+
                $username = $this->getArg( 0 );
                $password = $this->getArg( 1 );
                $force = $this->hasOption( 'force' );
@@ -120,7 +122,18 @@ class CreateAndPromote extends Maintenance {
                if ( $password ) {
                        # Try to set the password
                        try {
-                               $user->setPassword( $password );
+                               if ( $wgDisableAuthManager ) {
+                                       $user->setPassword( $password );
+                               } else {
+                                       $status = $user->changeAuthenticationData( [
+                                               'username' => $user->getName(),
+                                               'password' => $password,
+                                               'retype' => $password,
+                                       ] );
+                                       if ( !$status->isGood() ) {
+                                               throw new PasswordError( $status->getWikiText( null, null, 'en' ) );
+                                       }
+                               }
                                if ( $exists ) {
                                        $this->output( "Password set.\n" );
                                        $user->saveSettings();