X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FModels%2FUser.php;h=201361e68534eb869f94a1c3e50dc61140552a6b;hb=9f54b6e8fde827556cf858818090a1dfc829624c;hp=164fb026bfecba420a784daf83b44697f37cd869;hpb=66e57699b8055ef8a65a1be55b05301c811090bb;p=alttp.git diff --git a/app/Models/User.php b/app/Models/User.php index 164fb02..201361e 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -2,6 +2,7 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; @@ -28,11 +29,25 @@ class User extends Authenticatable return $this->username; } + public function getRandomQuoteAttribute() { + return $this->results() + ->where('comment', '!=', '') + ->whereHas('round', function(Builder $query) { + $query->where('locked', true); + }) + ->inRandomOrder() + ->first(); + } + public function isAdmin() { return $this->role === 'admin'; } + public function isPrivileged() { + return $this->role === 'special' || $this->isAdmin(); + } + public function isApplicant(Tournament $tournament) { foreach ($tournament->applications as $applicant) { if ($applicant->user_id == $this->id) { @@ -204,6 +219,7 @@ class User extends Authenticatable 'discriminator' => 'string', 'email' => 'string', 'avatar' => 'string', + 'avatar_cached' => 'datetime', 'verified' => 'boolean', 'locale' => 'string', 'mfa_enabled' => 'boolean',