Files
dumbo2/app/Models/User.php
2023-02-23 18:58:41 +01:00

79 lines
1.7 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'name',
'email',
'password',
];
/**
* The attributes that should be hidden for serialization.
*
* @var array<int, string>
*/
protected $hidden = [
'password',
'remember_token',
];
/**
* The attributes that should be cast.
*
* @var array<string, string>
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
public function comments() {
return $this->hasMany(Comment::class, 'user');
}
public function films() {
return $this->hasMany(Film::class, 'user');
}
public function votes() {
return $this->hasMany(Vote::class, 'user');
}
public function settings() {
return $this->hasMany(Setting::class, 'user');
}
public function news() {
return $this->hasMany(News::class, 'user');
}
public function getAvatar() {
$settings = $this->settings()->where('key', '=', 'avatar')->first();
return is_null($settings) ? "no-avatar.jpg" : $settings->value;
}
public function isActive() {
return !$this->disabled;
}
public function isAdmin() {
$settings = $this->settings()->where('key', '=', 'admin')->first();
return !is_null($settings);
}
}