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)
);
$this->validator->setUser($user);
$this->validator->assertValid(array_merge($user->getDirty(), $validate));
$user->save();

View File

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