Skip to content

Commit 4dcee8f

Browse files
authored
Merge pull request #829 from kenjis/fix-ValidationRules-prepareValidFields
fix: cannot register when you remove email from `$validFields`
2 parents 18886a7 + b18e7ea commit 4dcee8f

2 files changed

Lines changed: 13 additions & 4 deletions

File tree

src/Authentication/Passwords/ValidationRules.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,9 @@ protected function buildUserFromData(array $data = []): User
102102
*/
103103
protected function prepareValidFields(): array
104104
{
105-
$config = config('Auth');
106-
$fields = array_merge($config->validFields, $config->personalFields);
107-
$fields[] = 'password';
105+
$config = config('Auth');
106+
$fields = array_merge($config->validFields, $config->personalFields, ['email', 'password']);
108107

109-
return $fields;
108+
return array_unique($fields);
110109
}
111110
}

tests/Controllers/RegisterTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,16 @@ public function testRegisterActionSuccess(): void
8282
$this->assertTrue($user->active);
8383
}
8484

85+
public function testRegisterActionSuccessWithNoEmailLogin(): void
86+
{
87+
/** @var Auth $config */
88+
$config = config('Auth');
89+
// Use `username` for login
90+
$config->validFields = ['username'];
91+
92+
$this->testRegisterActionSuccess();
93+
}
94+
8595
public function testRegisterTooLongPasswordDefault(): void
8696
{
8797
$result = $this->withSession()->post('/register', [

0 commit comments

Comments
 (0)