Skip to content

Commit 563ecd2

Browse files
authored
Anonymize user email in disable command (#999)
There is a unique constraint on the user email column, meaning an empty string won't work for disabling subsequent users Bug: T409908
1 parent 03dad69 commit 563ecd2

2 files changed

Lines changed: 7 additions & 4 deletions

File tree

app/Console/Commands/User/Disable.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public function handle(): int {
5151
}
5252

5353
$userId = $user->id;
54-
$user->email = '';
54+
$user->email = uniqid() . '@disabled-user.wikibase.cloud';
5555
$user->password = random_bytes(10);
5656
$user->verified = false;
5757

tests/Commands/User/DisableTest.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,22 @@ private function createUser($email) {
2323

2424
public function testSuccess() {
2525
$oldUser = $this->createUser(self::EMAIL);
26-
$oldUserId = $oldUser->id;
2726

2827
$this->artisan('wbs-user:disable',
2928
[
3029
'--email' => self::EMAIL,
3130
]
3231
)->assertExitCode(0);
3332

34-
$newUser = User::firstWhere('id', $oldUserId);
33+
$newUser = User::firstWhere('id', $oldUser->id);
3534

3635
$this->assertSame($oldUser->id, $newUser->id);
37-
$this->assertSame($newUser->email, '');
36+
$this->assertMatchesRegularExpression(
37+
'/^[0-9A-Za-z]+@disabled-user.wikibase.cloud$/',
38+
$newUser->email
39+
);
3840
$this->assertFalse($newUser->hasVerifiedEmail());
41+
$this->assertNotSame($oldUser->password, $newUser->password);
3942
}
4043

4144
public function testUserNotFound() {

0 commit comments

Comments
 (0)