Merge "Set user.user_is_temp when creating a temporary user"

This commit is contained in:
jenkins-bot 2024-01-22 08:57:38 +00:00 committed by Gerrit Code Review
commit f26ea2f2fc
2 changed files with 27 additions and 0 deletions

View file

@ -2715,6 +2715,7 @@ class User implements Authority, UserIdentity, UserEmailContact {
'user_registration' => $dbw->timestamp( $this->mRegistration ),
'user_editcount' => 0,
'user_touched' => $dbw->timestamp( $this->mTouched ),
'user_is_temp' => $this->isTemp(),
] )
->caller( $fname )->execute();
if ( !$dbw->affectedRows() ) {

View file

@ -1763,4 +1763,30 @@ class UserTest extends MediaWikiIntegrationTestCase {
$user = new User;
$this->assertFalse( $user->isNamed() );
}
public static function provideAddToDatabase_temp() {
return [
[ '*Unregistered 1', '1' ],
[ 'Some user', '0' ]
];
}
/**
* @covers User::addToDatabase
* @dataProvider provideAddToDatabase_temp
*/
public function testAddToDatabase_temp( $name, $expected ) {
$this->enableAutoCreateTempUser();
$user = User::newFromName( $name );
$user->addToDatabase();
$field = $this->db->newSelectQueryBuilder()
->select( 'user_is_temp' )
->from( 'user' )
->where( [ 'user_name' => $name ] )
->caller( __METHOD__ )
->fetchField();
$this->assertSame( $expected, $field );
}
}