40 lines
1.1 KiB
PHP
Executable File
40 lines
1.1 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
// use Illuminate\Contracts\Auth\MustVerifyEmail;
|
|
use Database\Factories\UserFactory;
|
|
use Illuminate\Database\Eloquent\Attributes\Guarded;
|
|
use Illuminate\Database\Eloquent\Attributes\Hidden;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Relations\MorphToMany;
|
|
use Illuminate\Foundation\Auth\User as Authenticatable;
|
|
use Illuminate\Notifications\Notifiable;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use Laravel\Passport\Bridge\Client;
|
|
use Laravel\Passport\HasApiTokens;
|
|
|
|
#[Guarded(['id'])]
|
|
#[Hidden(['password'])]
|
|
class User extends Authenticatable
|
|
{
|
|
/** @use HasFactory<UserFactory> */
|
|
use HasFactory, Notifiable, HasApiTokens;
|
|
protected $guarded = ['id'];
|
|
|
|
public function documents(): MorphToMany
|
|
{
|
|
return $this->morphToMany(Document::class, 'documentable');
|
|
}
|
|
|
|
public function validateForPassportPasswordGrant(string $password): bool
|
|
{
|
|
return Hash::check($password, $this->password);
|
|
}
|
|
|
|
public function findForPassport(string $username, Client $client): User
|
|
{
|
|
return $this->where('username', $username)->first();
|
|
}
|
|
}
|