$this->addDescription( "Resets a user's email" );
$this->addArg( 'user', 'Username or user ID, if starts with #', true );
$this->addArg( 'email', 'Email to assign' );
+
+ $this->addOption( 'no-reset-password', 'Don\'t reset the user\'s password', false, false );
+
parent::__construct();
}
$user = User::newFromName( $userName );
}
if ( !$user || !$user->getId() || !$user->loadFromId() ) {
- $this->error( "Error: user '$userName' does not exist\n", 1 );
+ $this->fatalError( "Error: user '$userName' does not exist\n" );
}
$email = $this->getArg( 1 );
if ( !Sanitizer::validateEmail( $email ) ) {
- $this->error( "Error: email '$email' is not valid\n", 1 );
+ $this->fatalError( "Error: email '$email' is not valid\n" );
}
// Code from https://wikitech.wikimedia.org/wiki/Password_reset
$user->setEmail( $email );
$user->setEmailAuthenticationTimestamp( wfTimestampNow() );
$user->saveSettings();
- // Kick whomever is currently controlling the account off
- $user->setPassword( PasswordFactory::generateRandomPasswordString( 128 ) );
+
+ if ( !$this->hasOption( 'no-reset-password' ) ) {
+ // Kick whomever is currently controlling the account off
+ $user->setPassword( PasswordFactory::generateRandomPasswordString( 128 ) );
+ }
}
}