From 85d01043626dfb724b0ad2611137a005149564c5 Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Sun, 22 Dec 2019 11:50:39 +0800 Subject: [PATCH] =?UTF-8?q?Allow=20char=20"=C2=A7"=20for=20player=20name?= =?UTF-8?q?=20&=20Refactor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/AdminController.php | 8 +++- app/Http/Controllers/AuthController.php | 15 ++++--- app/Http/Controllers/PlayerController.php | 22 +++++++++-- .../ValidatorExtendServiceProvider.php | 39 ------------------- app/Rules/PlayerName.php | 36 +++++++++++++++++ config/app.php | 1 - resources/lang/en/validation.yml | 2 - resources/misc/changelogs/en/5.0.0.md | 2 + resources/misc/changelogs/zh_CN/5.0.0.md | 2 + 9 files changed, 76 insertions(+), 51 deletions(-) delete mode 100644 app/Providers/ValidatorExtendServiceProvider.php create mode 100644 app/Rules/PlayerName.php diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index 5b3a4e06..d2108963 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -6,6 +6,7 @@ use App\Models\Player; use App\Models\Texture; use App\Models\User; use App\Notifications; +use App\Rules; use App\Services\Filter; use App\Services\OptionForm; use App\Services\PluginManager; @@ -691,7 +692,12 @@ class AdminController extends Controller return json(trans('admin.players.delete.success'), 0); } elseif ($action == 'name') { $name = $this->validate($request, [ - 'name' => 'required|player_name|min:'.option('player_name_length_min').'|max:'.option('player_name_length_max'), + 'name' => [ + 'required', + new Rules\PlayerName(), + 'min:'.option('player_name_length_min'), + 'max:'.option('player_name_length_max'), + ], ])['name']; $player->name = $name; diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 2e09458e..8719e673 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -7,7 +7,7 @@ use App\Exceptions\PrettyPageException; use App\Mail\ForgotPassword; use App\Models\Player; use App\Models\User; -use App\Rules\Captcha; +use App\Rules; use Auth; use Cache; use Carbon\Carbon; @@ -31,7 +31,7 @@ class AuthController extends Controller ]); } - public function handleLogin(Request $request, Captcha $captcha) + public function handleLogin(Request $request, Rules\Captcha $captcha) { $this->validate($request, [ 'identification' => 'required', @@ -113,14 +113,19 @@ class AuthController extends Controller } } - public function handleRegister(Request $request, Captcha $captcha) + public function handleRegister(Request $request, Rules\Captcha $captcha) { if (!option('user_can_register')) { return json(trans('auth.register.close'), 7); } $rule = option('register_with_player_name') ? - ['player_name' => 'required|player_name|min:'.option('player_name_length_min').'|max:'.option('player_name_length_max')] : + ['player_name' => [ + 'required', + new Rules\PlayerName(), + 'min:'.option('player_name_length_min'), + 'max:'.option('player_name_length_max'), + ]] : ['nickname' => 'required|max:255']; $data = $this->validate($request, array_merge([ 'email' => 'required|email|unique:users', @@ -187,7 +192,7 @@ class AuthController extends Controller } } - public function handleForgot(Request $request, Captcha $captcha) + public function handleForgot(Request $request, Rules\Captcha $captcha) { $this->validate($request, [ 'captcha' => ['required', $captcha], diff --git a/app/Http/Controllers/PlayerController.php b/app/Http/Controllers/PlayerController.php index b44b8864..847fdead 100644 --- a/app/Http/Controllers/PlayerController.php +++ b/app/Http/Controllers/PlayerController.php @@ -11,6 +11,7 @@ use App\Http\Middleware\CheckPlayerExist; use App\Http\Middleware\CheckPlayerOwner; use App\Models\Player; use App\Models\Texture; +use App\Rules; use App\Services\Filter; use App\Services\Rejection; use Auth; @@ -80,7 +81,12 @@ class PlayerController extends Controller } $name = $this->validate($request, [ - 'name' => 'required|player_name|min:'.option('player_name_length_min').'|max:'.option('player_name_length_max'), + 'name' => [ + 'required', + new Rules\PlayerName(), + 'min:'.option('player_name_length_min'), + 'max:'.option('player_name_length_max'), + ], ])['name']; event(new CheckPlayerExists($name)); @@ -142,7 +148,12 @@ class PlayerController extends Controller $pid ) { $newName = $this->validate($request, [ - 'name' => 'required|player_name|min:'.option('player_name_length_min').'|max:'.option('player_name_length_max'), + 'name' => [ + 'required', + new Rules\PlayerName(), + 'min:'.option('player_name_length_min'), + 'max:'.option('player_name_length_max'), + ], ])['name']; $player = Player::find($pid); @@ -211,7 +222,12 @@ class PlayerController extends Controller public function bind(Request $request) { $name = $this->validate($request, [ - 'player' => 'required|player_name|min:'.option('player_name_length_min').'|max:'.option('player_name_length_max'), + 'player' => [ + 'required', + new Rules\PlayerName(), + 'min:'.option('player_name_length_min'), + 'max:'.option('player_name_length_max'), + ], ])['player']; $user = Auth::user(); diff --git a/app/Providers/ValidatorExtendServiceProvider.php b/app/Providers/ValidatorExtendServiceProvider.php deleted file mode 100644 index cee8525c..00000000 --- a/app/Providers/ValidatorExtendServiceProvider.php +++ /dev/null @@ -1,39 +0,0 @@ -