Allow username capitalisation to be changed

See https://discuss.flarum.org/d/1573-uppercase-lowercase-username-flagged-as-taken
This commit is contained in:
Toby Zerner 2015-12-05 15:43:40 +10:30
parent 262dc70fe1
commit 0cf000122f
2 changed files with 50 additions and 18 deletions

View File

@ -134,6 +134,7 @@ class EditUserHandler
new UserWillBeSaved($user, $actor, $data) new UserWillBeSaved($user, $actor, $data)
); );
$this->validator->setUser($user);
$this->validator->assertValid(array_merge($user->getDirty(), $validate)); $this->validator->assertValid(array_merge($user->getDirty(), $validate));
$user->save(); $user->save();

View File

@ -10,24 +10,55 @@
namespace Flarum\Core\Validator; namespace Flarum\Core\Validator;
use Flarum\Core\User;
class UserValidator extends AbstractValidator class UserValidator extends AbstractValidator
{ {
protected $rules = [ /**
'username' => [ * @var User
'required', */
'alpha_dash', protected $user;
'unique:users',
'min:3', /**
'max:30' * @return User
], */
'email' => [ public function getUser()
'required', {
'email', return $this->user;
'unique:users' }
],
'password' => [ /**
'required', * @param User $user
'min:8' */
] public function setUser(User $user)
]; {
$this->user = $user;
}
/**
* {@inheritdoc}
*/
protected function getRules()
{
$idSuffix = $this->user ? ','.$this->user->id : '';
return [
'username' => [
'required',
'alpha_dash',
'unique:users,username'.$idSuffix,
'min:3',
'max:30'
],
'email' => [
'required',
'email',
'unique:users,email'.$idSuffix
],
'password' => [
'required',
'min:8'
]
];
}
} }