From 4bf1658c2e1ef354061803ae88e41e8738ea6696 Mon Sep 17 00:00:00 2001 From: JaguarJack Date: Thu, 1 Feb 2024 10:09:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E8=B4=A6=E6=88=B7=E7=A6=81=E7=94=A8?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/User/Http/Controllers/AuthController.php | 14 ++++++++++---- modules/User/Models/User.php | 7 +++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/modules/User/Http/Controllers/AuthController.php b/modules/User/Http/Controllers/AuthController.php index 2b5601e..7b546de 100644 --- a/modules/User/Http/Controllers/AuthController.php +++ b/modules/User/Http/Controllers/AuthController.php @@ -22,11 +22,17 @@ class AuthController extends Controller /* @var User $user */ $user = User::query()->where('email', $request->get('email'))->first(); - Event::dispatch(new Login($request, $user)); + Event::dispatch(new Login($request, $user ? ($user->isDisabled() ? null : $user) : null)); - if ($user && Hash::check($request->get('password'), $user->password)) { - $token = $user->createToken('token')->plainTextToken; - return compact('token'); + if ($user) { + if ($user->isDisabled()) { + throw new FailedException('账号被禁用,请联系管理员'); + } + + if (Hash::check($request->get('password'), $user->password)) { + $token = $user->createToken('token')->plainTextToken; + return compact('token'); + } } throw new FailedException('登录失败!请检查邮箱或者密码'); diff --git a/modules/User/Models/User.php b/modules/User/Models/User.php index b782159..9cbe174 100644 --- a/modules/User/Models/User.php +++ b/modules/User/Models/User.php @@ -3,6 +3,7 @@ namespace Modules\User\Models; use Catch\Base\CatchModel as Model; +use Catch\Enums\Status; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use Illuminate\Database\Eloquent\Casts\Attribute; use Laravel\Sanctum\HasApiTokens; @@ -102,4 +103,10 @@ class User extends Model implements AuthenticatableContract return parent::updateBy($id, $data); } + + public function isDisabled(): bool + { + + return $this->status == Status::Disable->value; + } }