فهرست منبع

Merge pull request #2316 from dx7/improve-username-email-validation

Improve error messages for username and email restricted on register page
daniel 5 سال پیش
والد
کامیت
c6539bed90
1فایلهای تغییر یافته به همراه20 افزوده شده و 21 حذف شده
  1. 20 21
      app/Http/Controllers/Auth/RegisterController.php

+ 20 - 21
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.
      *