feat:账户禁用功能

This commit is contained in:
JaguarJack 2024-02-01 10:09:47 +08:00
parent 8e0ec2a6a9
commit 4bf1658c2e
2 changed files with 17 additions and 4 deletions

View File

@ -22,12 +22,18 @@ 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)) {
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('登录失败!请检查邮箱或者密码');
}

View File

@ -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;
}
}