浏览代码

Improve email validation error for restricted emails

dx7 5 年之前
父节点
当前提交
913bf77ba4
共有 1 个文件被更改,包括 15 次插入11 次删除
  1. 15 11
      app/Http/Controllers/Auth/RegisterController.php

+ 15 - 11
app/Http/Controllers/Auth/RegisterController.php

@@ -58,8 +58,6 @@ class RegisterController extends Controller
             $data['email'] = strtolower($data['email']);
             $data['email'] = strtolower($data['email']);
         }
         }
 
 
-        $this->validateEmail($data['email']);
-
         $usernameRules = [
         $usernameRules = [
             'required',
             'required',
             'min:2',
             'min:2',
@@ -94,11 +92,25 @@ class RegisterController extends Controller
             },
             },
         ];
         ];
 
 
+        $emailRules = [
+            'required',
+            'string',
+            'email',
+            'max:255',
+            'unique:users',
+            function ($attribute, $value, $fail) {
+                $banned = EmailService::isBanned($value);
+                if($banned) {
+                    return $fail('Email is invalid.');
+                }
+            },
+        ];
+
         $rules = [
         $rules = [
             'agecheck' => 'required|accepted',
             'agecheck' => 'required|accepted',
             'name'     => 'nullable|string|max:'.config('pixelfed.max_name_length'),
             'name'     => 'nullable|string|max:'.config('pixelfed.max_name_length'),
             'username' => $usernameRules,
             'username' => $usernameRules,
-            'email'    => 'required|string|email|max:255|unique:users',
+            'email'    => $emailRules,
             'password' => 'required|string|min:12|confirmed',
             'password' => 'required|string|min:12|confirmed',
         ];
         ];
 
 
@@ -127,14 +139,6 @@ class RegisterController extends Controller
         ]);
         ]);
     }
     }
 
 
-    public function validateEmail($email)
-    {
-        $banned = EmailService::isBanned($email);
-        if($banned) {
-            return abort(403, 'Invalid email.');
-        }
-    }
-
     /**
     /**
      * Show the application registration form.
      * Show the application registration form.
      *
      *