diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index ec7e15b7..40271f1f 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -58,9 +58,6 @@ class RegisterController extends Controller $data['email'] = strtolower($data['email']); } - $this->validateUsername($data['username']); - $this->validateEmail($data['email']); - $usernameRules = [ 'required', 'min:2', @@ -87,6 +84,25 @@ class RegisterController extends Controller if(!ctype_alnum($val)) { return $fail('Username is invalid. Username must be alpha-numeric and may contain dashes (-), periods (.) and underscores (_).'); } + + $restricted = RestrictedNames::get(); + if (in_array($value, $restricted)) { + return $fail('Username cannot be used.'); + } + }, + ]; + + $emailRules = [ + 'required', + 'string', + 'email', + 'max:255', + 'unique:users', + function ($attribute, $value, $fail) { + $banned = EmailService::isBanned($value); + if($banned) { + return $fail('Email is invalid.'); + } }, ]; @@ -94,7 +110,7 @@ class RegisterController extends Controller 'agecheck' => 'required|accepted', 'name' => 'nullable|string|max:'.config('pixelfed.max_name_length'), 'username' => $usernameRules, - 'email' => 'required|string|email|max:255|unique:users', + 'email' => $emailRules, 'password' => 'required|string|min:12|confirmed', ]; @@ -123,23 +139,6 @@ class RegisterController extends Controller ]); } - public function validateUsername($username) - { - $restricted = RestrictedNames::get(); - - if (in_array($username, $restricted)) { - return abort(403); - } - } - - public function validateEmail($email) - { - $banned = EmailService::isBanned($email); - if($banned) { - return abort(403, 'Invalid email.'); - } - } - /** * Show the application registration form. *